folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder Vb.Net İle Nesne Ekleme (Anlatım)



Vb.Net İle Nesne Ekleme (Anlatım)

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    dejnclea
    dejnclea's avatar
    Kayıt Tarihi: 28/Haziran/2010
    Erkek

    arkadaşlar merhaba. Uzunsayılabilecek bir süredir VB 6 da çalışıyordum ancak VB.Net e geçtim

     

    Bugüne kadar kullanmadığım, öğrenmediğim, şimde de öğrenince neden kullanmadığım için kendime sövdüğüm nesne ekleme olayını anlatacağım.

     

     

    Forma bir adet button ekleyin. uygun yerlere aşağıdaki kodu yazın. Şimdi kodu inceleyelim.

     

    Public Class Form1
        Dim fff As New Form
        Dim ddd As New Label


        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            fff = New Form
            ddd = New Label
            ddd.Text = "melaba"

            fff.Controls.Add(ddd)



            fff.Show()

        End Sub
    End Class

     

     

    kodumuz bu. Şimdi inceleyelim, kurcalayalım.

     

    dim fff as new Form.               bu satırda, adı fff olan yeni bir form tanımlıyoruz.

     

    dim ddd as new label             bu satırda, adı ddd olan yeni bir label nesnesi tanımlıyoruz.

     

    button'un click olayına;

    fff = new form

    ddd= new label

     

    yazarak, ekleyeceğimiz fff ve ddd nesnelerini button'un click olayına tanımlıyoruz.

     

    ddd.text="melaba"           satırında, ddd'nin(label) text değerini belirliyoruz. burada "melaba" olarak şeyettim.

     

    daha sonra ise;

     

    fff.controls.add(ddd)  diyoruz. Bu komut, fff olarak belirlediğimiz yeni forma, ddd olarak belirlediğimiz label'i eklememizi sağlıyor.

     

    fff.show            satırında ise fff formunu bize göstermesini söylüyoruz.

     

     

    bu kadar. button'a tıkladığımızda yeni bir form açılacak ve "melaba" yazan bir label göreceğiz.

     

    Başlangıç için bunu anlatmak istedim. Event ekleme, nispeten karmaşık kullanımı falan ilerleyen zamanlarda anlatacağım.

     

    Esas olay şu;

     

    dim zamazingo as new hedehödö

     

    yazıp, kullanacağımız zaman da

     

    zamazingo = new hedehödö gibi tanımlama yapmamız gerek. Daha sonra bunu istediğimiz amaç için şekillendirebiliriz.

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    dejnclea
    dejnclea's avatar
    Kayıt Tarihi: 28/Haziran/2010
    Erkek

    Evet arkadaşlar, kimsenin yazmaması iyi olmuş böylece AddHandler olayını da anlatabileceğim aynı başlık altından =)

     

    Öncelikle nedir, ne işe yarar diye soran olursa onu cevaplayayım. AddHandler, eklediğimiz kontrolün tepki vermesi içindir diye özetleyebilirim.

     

    Malumunuz, kontrollerin Eventleri (olayları) var. Textbox_Textchanged, Button_Click gibi. AddHandler sayesinde de, dinamik olarak eklediğimiz kontrollere bu özelliği katabiliriz.

     

    formumuza bir adet textbox, bir adet de buton ekleyelim.

     

    Form'un kod sayfasına girelim, Public Class Form1 yazan satırın hemen altına;

        Private WithEvents btn As New Button
         Private WithEvents web As New WebBrowser
         Private WithEvents yeni As New Form

    kodlarını yazalım. Bu şekilde sonradan dinamik olarak ekleyeceğimiz Form, Buton ve WebBrowser'ı tanıtmış oluyoruz. Neyse;

     

    Şimdi de forma eklemiş olduğumuz Buton'un kodlarına geçelim.

     

            yeni = New Form
            web = New WebBrowser
            btn = New Button

    Bunları, Button_Click event'inde yani buton'a tıklayınca kullanacağımız için Button'ın Click eventi altına yazıyoruz.

     

            web.Navigate(TextBox1.Text)
            web.Dock = DockStyle.Bottom
            yeni.Controls.Add(web)
            yeni.Text = TextBox1.Text
            yeni.Show()

    Yukarıdaki satırlarda, web isimli yeni browserımızın tarayacağı sayfayı ve özelliklerini belirliyoruz. Yazdığımız kodun özeti; yeni bir form oluşturması, bu formda bir browser olması, ve bu browser'ın TextBox1 de yazdığımız sayfayı göstermesi. Bu haliyle de kullanabilirsiniz tabi.

     

     

    Yok eğer ben yeni sayfaya bir de buton eklemek ve butona tıklandığında sayfanın kodlarını almak istiyorum diyorsanız altta anlatacaklarımı da okuyun =).

     

     

    Şimdi, biz bu btn nesnesini uygulama çalışırken ekleyeceğimiz için çift tıklayı girip kod yazma gibi bir durumumuz olamayacak. Bundan dolayı her şeyi önceden ayarlamamız gerek. Bunu nasıl yapacağız peki? Anlatıyorum.

     

    Button1_Click event'i altına yazmaya devam ediyoruz.

     


            AddHandler btn.Click, AddressOf btn_tikla

     

    Bu ne anlama geliyor? Bu şu anlama geliyor. btn'ın, Click Event'inde yapacaklarını, btn_tikla altında anlatacağım.

     

    o halde hemen bir btn_tikla sub'ı oluşturmamız gerek. Onu da oluşturalım.

     

          Private Sub btn_tikla(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn.Click
      

    Parantez içindeki yazıları Button1_Click eventinden kopyalayabilirsiniz. Sadece Handles btn.Click kısmını değiştiriyoruz. Hangi nesnenin hangi Event'i için kullanacaksak onu yazıyoruz.

     

    kod satırına ise;

     

    MsgBox(web.DocumentText)

    yazarak, bize browser'ın sayfa kodunu göstermesini sağlıyoruz.

     

     

    Çok iyi anlatamamış olabilirim. Takıldığınız yerleri sormaktan çekinmeyiniz.

     

    Bu da Form'un tüm kodu;

     

     

     

    Public Class Form1
        Private WithEvents btn As New Button
        Private WithEvents web As New WebBrowser
        Private WithEvents yeni As New Form

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            yeni = New Form
            web = New WebBrowser
            btn = New Button

            web.Navigate(TextBox1.Text)
            web.Dock = DockStyle.Bottom
            yeni.Controls.Add(web)
            yeni.Text = TextBox1.Text
            btn.Text = "kodları al"
            yeni.Controls.Add(btn)

            yeni.Show()


            AddHandler btn.Click, AddressOf btn_tikla



        End Sub
        Private Sub btn_tikla(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn.Click
            MsgBox(web.DocumentText)

        End Sub
    End Class

Toplam Hit: 1771 Toplam Mesaj: 2