Kirjautuminen

Haku

Tehtävät

Koodit: VB.NET: Leikepöytä ja oma objekti

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

Kirjoita kommentti

Muista lukea kirjoitusohjeet.
Tietoa sivustosta