![]() |
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
| |
|
|
|
Windows-Version |
98/SE |
 |
|
ME |
 |
|
NT |
 |
|
2000 |
 |
|
XP |
 |
|
Vista |
 |
|
Win
7 |
 |
|
|
|
Download (21
kB)
|
Downloads bisher: [ 179 ]
|
|
|