Sebagai komponen yang bersifat container, TabControl sangat membantu sekali dalam mendesain tampilan pada form windows, dengan menggunakan TabControl informasi yang banyak pada suatu windows aplikasi dapat dikelompokan menurut fungsinya masing-masing, sehingga hal ini akan lebih memudahkan user dalam menggunakan aplikasi.
Namun TabControl di VB.net 2005 mempunyai satu kelemahan, misalnya jika di dalam aplikasi anda terdapat TabControl dengan beberapa TabPage, katakanlah TabPage1 dan TabPage2, kemudian yang anda inginkan adalah sebelum user menyelesaikan semua entryan yang terdapat di TabPage1 maka user tersebut tidak boleh pindah ke TabPages2. untuk masalah seperti ini mungkin anda akan langsung berpikir, "kalo gitu TabPage2-nya di-disable saja dulu, ketika semua entryan yg diperlukan di TabPage1 telah ter-isi semua maka TabPage2 di-enable". Di sinilah permasalahannya, TabControl di VB.Net 2005 tidak menyediakan fasilitas tersebut(Enable/Disable Page).
Begitu juga dengan method Hide dan Show yang ada di TabControl tidak bisa digunakan untuk mengatasi masalah ini. lalu kemudian ada yang mencoba memberi solusi dengan method Add dan Remove Tab, saya pikir ini bukan solusi karena dengan method tersebut berarti kita harus merekonstruksi ulang TabPage yang kita Remove, saat kita ingin menampilkannya kembali.
Walhasil bagi saya, solusi yang paling memungkinkan adalah dengan memanfaatkan Property TabControl.SelectedIndex yang diletakan di Event TabControl.Selected. Dengan cara ini ketika user meng-klik TabPage2, lakukan proses Checking apakah semua entryan yang wajib diisi di TabPage1 sudah terisi semua atau belum, jika belum maka arahkan property TabControl.SelectTab ke TabPage1. kodenya sebagaimana yang terdapat di bawah ini.
Public Class Form1
Private Function CekEntryanTabPage1() As Boolean
If TextBox1.Text = String.Empty Then
Return False
End If
Return True
End Function
Private Sub TabControl1_Selected(ByVal sender As Object, ByVal e As System.Windows.Forms.TabControlEventArgs) Handles TabControl1.Selected
If TabControl1.SelectedIndex = 1 Then
If CekEntryanTabPage1() = False Then
MessageBox.Show("Isian di tab page 1 belum lengkap", "pesan", MessageBoxButtons.OK, MessageBoxIcon.Warning)
TabControl1.SelectTab(0)
End If
End If
End Sub
End Class
Demikian, semoga membantu dan bermanfaat.
1 komentar:
thanks gan sangat membantu
Posting Komentar