Kirjoittaja: tnb
Kirjoitettu: 26.09.2004 – 26.09.2004
Tagit: koodi näytille, vinkki
Myös oma olio (objekti) voidaan tallentaa leikepöydälle ja lukea se sieltä toiseen, samantyyppiseen olioon. Oheisessa demossa on form1, button1 ja textbox1.
Button1:een
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'***********************************************************
' Oman olion kuljetus leikepöydän kautta takaisin ohjelmaan
' TNB 9/2004 vb.net 2003
'***********************************************************
Dim OmaOlio As New OmaLuokka(123) ' sisäiseksi dataksi arvo 123
'laitetaan oma olio leikepöydälle
System.Windows.Forms.Clipboard.SetDataObject(OmaOlio)
' tehdään olio johon halutaan leikepöydällä oleva olio takaisin
Dim ToinenOmaOlio As OmaLuokka
' ensin luetaan leikepöydän data
Dim Tieto As IDataObject = Clipboard.GetDataObject()
' jos leikepöydällä on oikean tyyppistä dataa niin...
If Tieto.GetDataPresent(GetType(OmaLuokka)) Then
' Laitetaan data leikepöydältä olioon
' Samalla muutetaan tyyppi yleisestä objektista Omaluokka-tyyppiseksi objektiksi
ToinenOmaOlio = CType(Tieto.GetData(GetType(OmaLuokka)), OmaLuokka)
' Ja näytetään formilla että data kulki leikepöydän kautta
TextBox1.Text = ToinenOmaOlio.SisäinenData.ToString
End If
End Sub' Yksinkertainen luokka jossa on vain yksi sisäinen arvo
' Omien luokkien alussa pitää olla Serializable-attribuutti,
' jos haluaa käyttää leikepöytää
<Serializable()> _
Public Class OmaLuokka
Public SisäinenData As Integer
Public Sub New(ByVal data As Integer)
SisäinenData = data
End Sub
End Class