Sunday, May 27, 2012

Mendisablekan Seluruh Objek Yang Terdapat Pada PictureBox

Setelah sebelumnya kita mengetahui cara merubah .Caption dan ukuran Form, maka sekarang kita beralih topik mengenai cara mendisablekan seluruh objek yang terdapat pada PictureBox atau Frame. Jadi judul yang lebih tepat adalah mendisablekan seluruh objek yang terdapat pada PictureBox atau Frame menggunakan kode.

Sebelumnya ada beberapa hal yang harus diketahui, bahwa Form itu merupakan sebuah Container atau bisa disebut juga koleksi (Collection) demikian pula PictureBox dan Frame. Karena mereka (Form, PictureBox, Frame) adalah sebuah kontainer maka mereka dapat menampung objek-objek lain, sebagai contoh: apabila kita membuat sebuah Form dan pada Form tersebut kita tempatkan PictureBox maka bisa dikatakan: Kontainer Form menampung objek PictureBox. Dan apabila kita tempatkan sebuah CommandButton pada PictureBox tersebut, maka bisa dikatakan bahwa kontainer PictureBox menampung sebuah objek CommandButton.

Pada umumnya sebuah kontainer atau koleksi diperlengkapi dengan kode (dulu pada saat pembuatan) agar bisa memanggil objek secara sekaligus menggunakan perulangan For ... Each. Sebagai contoh:
    Dim c As Control 'Deklarasikan bahwa variabel c adalah Control bukan embe atau kucing. 
For Each c In Me.Controls
If TypeOf c Is CommandButton Then
c.Enabled = False 'disablekan
End If
Next
Apabila diterjemahkan maka kira-kira sebagai berikut: Jadikan variabel c sebagai Control bukang string, integer, embe, atau kucing. Untuk setiap c (Control) yang berada pada Container (Me.Controls) [lakukan:] disablekan c (c.Enabled = False).

Dengan memahami yang telah dijelaskan di atas, sekarang bagaimana jika kita ingin mendisablekan seluruh objek yang terdapat pada PictureBox (saja) tanpa mendisablekan objek-objek yang berada di luar PictureBox. Berikur merupakan salah satu contohnya:
Private Sub Command1_Click() 
Dim c As Control 'deklarasikan bahwa variabel c adalah Contol ehm..ehm.. Control
For Each c In Me.Controls
If c.Container.Name = "Picture1" Then
c.Enabled = False
End If
Next
End Sub
Untuk setiap c (control) yang berada pada container [lakukan] jika nama kontainernya adalah Picture1 [pengecualian] maka disablekan c (c.Enabled = False).