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