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 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).

Perihal Novian Agung
Pengangguran

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: