Tipp 0197 Objekt kopieren und einfügen
Autor/Einsender:
Datum:
  Michael Werner
24.01.2010
Entwicklungsumgebung:   VB.Net 2008
Framework:   2.0
Das Businessobjekt User besteht aus den String-Members Name und Password, einer List(Of String) Hobbies und einem Boolean Registered. Für ein Copy/Paste eines Objektes, d.h. ein Kopieren in die Zwischenablage und ein Einfügen aus der Zwischenablage muss der Klasse das Attribut <Serializable()> angefügt werden.
In drei Schritten wird die Copy/Past-Demo nun ausgeführt:
1.  Zunächst wird ein User-Objekt erstellt.
2.  Das Objekt wird in die Zwischenablage kopiert.
3.  Das Objekt wird aus der Zwischenablage eingefügt.
Randbemerkungen:
Die drei CheckBoxen (Schritte ausführen) sind mit AutoCheck = False für Benutzereingaben gesperrt. Ein Kontextmenü ist auf die ListBox1 gesetzt, um die Editierbarkeit der Hobby-Liste zu erreichen (Hobby hinzufüge/löschen).
Das Businessobjekt (Klasse User.vb)
 
Namespace zaack

  <Serializable()> _
  Public Class User

    Private _userName As String
    Private _userPassword As String
    Private _userHobbies As String()
    Private _userRegistered As Boolean

    Public Property Name() As String
      Get
        Return _userName
      End Get
      Set(ByVal value As String)
         _userName = value
      End Set
    End Property

    Public Property Password() As String
      Get
        Return _userPassword
      End Get
      Set(ByVal value As String)
        _userPassword = value
      End Set
    End Property

    Public Property Registered() As Boolean
      Get
        Return _userRegistered
      End Get
      Set(ByVal value As Boolean)
        _userRegistered = value
      End Set
    End Property

    Public Property Hobbies() As String()
      Get
        Return _userHobbies
      End Get
      Set(ByVal value As String())
        _userHobbies = value
      End Set
    End Property
  End Class
End Namespace
 
Code aus der MainForm (Form1)
 
Private Sub CreateObject()
  myUserObject = New zaack.User
   'Objekt erstellen
  Dim arrHobbies As String() = _
      {"Faulenzen", "Autofahren", "Fernsehen"}

  With myUserObject
    .Name = tbName.Text
    .Password = tbPassword.Text
    .Registered = cbkboxRegistered.Checked
    Dim listHobbies(ListBox1.Items.Count - 1) As String
    Dim i As Integer = 0
    For Each item As String In ListBox1.Items
      listHobbies(i) = item.ToString
      i += 1
    Next
    .Hobbies = listHobbies
  End With
  chkboxCreated.Checked = True
  chkboxCopied.Checked = False
  chkboxPasted.Checked = False
End Sub

Private Sub CopyObject()
  If Not myUserObject Is Nothing Then
     'Objekt in die Zwischenablage kopieren
    My.Computer.Clipboard.SetData("User", myUserObject)
    chkboxCopied.Checked = True
    chkboxPasted.Checked = False
  Else
    MessageBox.Show("Erstellen Sie zuerst das Objekt!", _
      "Kein Óbjekt vorhanden", MessageBoxButtons.OK, _
      MessageBoxIcon.Exclamation)
    chkboxCopied.Checked = False
    chkboxPasted.Checked = False
  End If
End Sub

Private Sub PasteObject()
  Dim tempUser As New zaack.User

  'Wenn die Zwischenablage ein Userobjekt enthält, dieses abrufen,
  'einem anderen Objekt zuweisen und die Werte der Eigenschaften
  'dieses Objekt in einem Listenfeld anzeigen
  If My.Computer.Clipboard.ContainsData("User") Then
    tempUser = _
      CType(My.Computer.Clipboard.GetData("User"), zaack.User)
    With tempUser
      ListBox2.Items.Add("Name:")
      ListBox2.Items.Add("  " & .Name)
      ListBox2.Items.Add("Kennwort:")
      ListBox2.Items.Add("  " & .Password)
      ListBox2.Items.Add("Registriert:")
      ListBox2.Items.Add("  " & .Registered.ToString)
      ListBox2.Items.Add("Hobbies:")
      Dim arr() As String = .Hobbies
      For Each item As String In arr
        ListBox2.Items.Add("  " & item.ToString)
      Next
    End With
    chkboxPasted.Checked = True
  Else
    MessageBox.Show("Clipboard enthält kein User-Objekt!", _
       "Kein Userobjekt in der Zwischanablage!", _
        MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
    chkboxPasted.Checked = False
  End If
End Sub
 
Weitere Links zum Thema
Objekte erstellen und serialisieren

Windows-Version
98/SE
ME
NT
2000
XP
Vista
Win 7


Download  (21 kB) Downloads bisher: [ 179 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Tipps | Projekte | Tutorials | Bücherecke | VB-/VBA-Tipps | API-Referenz | Komponenten | VB.Net-Forum | VB/VBA-Forum | DirectX-Forum | Foren-Archiv | DirectX | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Sonntag, 22. Januar 2012