Menu Horisontal

Selasa, 11 Desember 2012

Menyisipkan Kontrol Baru

Sumber : http://pujanggavb.wordpress.com/2008/11/14/menyisipkan-kontrol-baru/

Menambahkan sebuah kontrol pada saat design mode memang mudah sekali. Anda tinggal memilih jenis kontrol yang disediakan ToolBox, kemudian melakukan dragging pada badan form. Bisakah Anda menciptakan atau menambahkan kontrol baru pada saat runtime atau melalui jendela kode?
Teknik berikut ini adalah teknik untuk menciptakan kontrol baru. Cukup aneh memang, Anda tidak memasukkan kontrol apapun, namun ketika program berjalan form tiba-tiba menciptakan kontrol-kontrol baru. Lebih aneh lagi kontrol-kontrol ini dapat diperintah layaknya kontrol yang Anda desain saat design mode.
Berikut ini contoh program untuk menyisipkan sebuah PictureBox, beberapa TextBox dan sebuah VScrollBar yang dijalankan ketika runtime.
Stop! Tidak perlu melakukan design apapun, ketikkan kode di bawah ini.



Option Explicit

   Dim ctl As Control
   Dim i As Long
   Dim AkhirTinggi As Long
   Dim AwalTop As Long

   Dim JumTextBox As Integer
   Dim myVsb As Control

  Dim WithEvents vsbScroll As VScrollBar
  Dim WithEvents Picture1 As PictureBox

  Private Sub Form_Load()
      'Membuat PictureBox
      Set ctl = Me.Controls.Add("VB.PictureBox", _
          "Picture1")
      ctl.Visible = True

      ctl.Move 0, 0, Me.ScaleWidth, Me.ScaleHeight
      Set Picture1 = ctl

      'Membuat TextBox baru
      JumTextBox = 20 '<-- banyaknya="banyaknya" br="br" textbox="textbox">      For i = 0 To JumTextBox
          Set ctl = Me.Controls.Add("VB.TextBox", _
          "Text" & CStr(i))
          'Agar kontrol ditampung PictureBox
          Set ctl.Container = Picture1
          'Memposisikan dan mengatur ukuran TextBox
          ctl.Move 60, 60 + (330 * i), 2000, 285

          AkhirTinggi = i * (60 + (330 * i) + 285)
          'Mengisi properti Text
          'sesuai dengan nama TextBox
          ctl.Text = ctl.Name

          'Menampilkan TextBox
          ctl.Visible = True
      Next

      'Membuat ScrollBar vertical
      Set ctl = Me.Controls.Add("VB.VScrollBar", _
          "vsbScroll")
      Set ctl.Container = Picture1
      ctl.Move Picture1.Width - 350, 0, 280, Picture1.Height - 100
      ctl.Max = JumTextBox * 300 + Picture1.Height
      ctl.SmallChange = 100
      ctl.LargeChange = 200
      ctl.Visible = True

      Set vsbScroll = ctl
  End Sub

  Sub vsbScroll_Change()
      'Memindahkan posisi TextBox
      For Each ctl In Me.Controls
          If TypeOf ctl Is TextBox Then
              ctl.Top = ctl.Top + (AwalTop - vsbScroll.Value)
          End If
      Next
      AwalTop = vsbScroll.Value
  End Sub

  Sub vsbScroll_Scroll()
      vsbScroll_Change
  End Sub

  Private Sub VScroll1_Change()
      For Each ctl In Me.Controls
          If TypeOf ctl Is TextBox Then
              ctl.Top = ctl.Top + (AwalTop - VScroll1.Value)
          End If
      Next

      AwalTop = VScroll1.Value
  End Sub
Jalankan program (F5), lihatlah apa yang terjadi! CObalah untuk mengklik atau menggerakan batang penggulung (VScrollBar).

Tidak ada komentar: