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