Validasi How To ?? haha.. ini menindaklanjuti dari komentar salah seorang pengunjung web ini. dia menanyakan tentang validasi ini komentar lengkapnya : bos, mau nanya am yg senior neh saya punya form fill in yang misalnya textbox nama tidak diisi maka akan tampil msgbox yg bilang bahwa txtbox nama harus diisi… nah yg pusingx, ada banyak txtbox dan di button submit itu ada searching smua txtbox yg belum keisi… nah cara buat nampilin di msgbox txtbox mana yang belum keisi itu formatx gmn??? apa pake try catch?? thx b4
Keren kan ane di panggil bos dan lagi senior ?? :D tapi sebenarnya ane cuma pesen aza jangan nilai orang dari apa yang bisa di lihat atau dirasakan saja, ada hal yang sangat penting dibalik itu. oke ? :D
Sejauh ini yang pernah saya lakukan untuk project-project yang saya kerjakan mengenai validasi saya bisa melakukan dengan menambakan objek ErrorProvider dengan cara manambahkannya dari toolbox seperti ini gambarnya :

 ika sudah misal kita punya textbox1 dan didalam textbox1 tersebut beri event validating ingat validating yah.. ? :) seperti gambar berikut ini :

 Jika sudah tambahkan kode berikut pada event validating tadi :

   1: Private Sub texbox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles texbox1.Validating
   2:     If texbox1.Text.Length = 0 Then
   3:         ErrorProvider1.SetError(texbox1, "TextBox Satu Harus Diisi !!")
   4:     Else
   5:         ErrorProvider1.Clear()
   6:     End If
   7: End Sub


 maka hasilnya adalah ketika user mengosongkan TextBoxnya maka akan muncul Tampilan icon merah si ujung textboxnya... misal seperti gambar berikut :


 Hal ini dapat diterapkan dalam pembuatan aplikasi sehingga user (client) mudah menggunakannya sehingga dia dapat melihat icon berwarna merah jika belum mengisi textbox1 misalnya.. Untuk masalah mengecek jika suatu textbox itu gak ada isinya lantas muncul suatu message box yang memberitahukan bahwa textbox tersebut belum diisi itu memang harus dilakukan satu2,, di vb.net pun yah begitu sama harus satu2,, di javascript untuk client side juga sama harus satu, satu mengecek nya, bukan ?? Nah namun pengecekan ini di VB.NET bisa dibuat mudah dengan menerapkan konsep Function / Prosedur (* Pelajaran Algoritma nh, hahaha.. :D) misal saya punya form seperti diatas maka yang saya lakukan selain menambahakan error provider saya pun menambahkan kode ini untuk mengecek suatu textbox itu kosong :

   1: Imports System.Xml
   2: Public Class frmTambahSiswa
   3:     Shared Function Validasi(ByVal obj() As TextBox) As Boolean
   4:         Dim i As Integer
   5:         Dim cek AS Boolean
   6:         For i = 0 To obj.Length - 1
   7:             If (obj(i).Text.Length = 0) Then
   8:                 MessageBox.Show(obj(i).Name.ToString & " masih belum diisi !", "Kesalahan", MessageBoxButtons.OK, MessageBoxIcon.Information)
   9:                 obj(i).Focus()
  10:                 cek = False
  11:                 Exit For
  12:             Else
  13:                 cek = True
  14:             End If
  15:         Next
  16:         If cek Then
  17:             Return True
  18:         Else
  19:             Return False
  20:         End If
  21:     End Function
  22:  
  23:     Private Sub btnSimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSimpan.Click
  24:         Dim t() As TextBox = {texbox1, txtNIS, txtNama, txtAlamat, txtDesa, txtTempatLahir, txtKecamatan, txtKota _
  25:        , txtKodePos, txtNoTelepon, txtJumlah, TxtKeterangan}
  26:         If Validasi(t) Then
  27:             MessageBox.Show("Anda telah menulis data dengan benar")
  28:         End If
  29:     End Sub
  30: End Class
Nah untuk error provider juga bisa menggunakan function saja.. Yang pasti saran saya bagaimanapun coding anda yang penting adalah tujuan tercapai, hasil karena algoritma berfokus pada hasil, dan jika kita berbicara proses maka struktur data lah yang berbicara,, hehehe.. gapapa prosesnya panjang tetapi jika hasil yang dicapai adalah benar so.. tak masalah,, sekian kalau ada yang ditanyakan bisa koment dibawah eh sourcecode diatas bisa di download disini Ada lanjutannya nih kalau di lanjutkan di komentar kurang enak jadi saya lanjutkan disini..hehe.. source code diatas menampilkan messagebox satu2 bukan ?? artinya messagebox muncul satu2 untuk setiap textbox yang kosong, nah lantas bagaimana caranya jika ingin messageboxnya menampilkan semua nama textbox yang kosongnya bersamaan,, Alurnya sederahana aza kok cuma kita siapkan satu variable string untuk menampung nama textboxnya dan kita melakukan perulangan deh untuk mengeceknya, jika suatu textbox itu kosong maka nama textboxnya di masukan ke dalam variable string itu.. begitulah kira-kira intinamah atos dicoba ku abi janten kiyeu : he.. :) 

   1: Imports System.Xml
   2: Public Class frmTambahSiswa
   3:     Shared Function Validasi(ByVal obj() As TextBox) As Boolean
   4:         Dim i, j As Integer
   5:         Dim cek As Boolean = True
   6:         Dim objNameTemp As String = ""
   7:  
   8:         For j = 0 To obj.Length - 1
   9:             If obj(j).Text.Length = 0 Then
  10:                 objNameTemp &= " " & obj(j).Name
  11:             End If
  12:         Next
  13:  
  14:         For i = 0 To obj.Length - 1
  15:             If obj(i).Text.Length = 0 And cek Then
  16:                 cek = False
  17:                 Exit For
  18:             End If
  19:         Next
  20:  
  21:         If cek Then
  22:             Return True
  23:         Else
  24:             MessageBox.Show(objNameTemp & " masih belum diisi !", "Kesalahan", MessageBoxButtons.OK, MessageBoxIcon.Information)
  25:             Return False
  26:         End If
  27:     End Function
  28:     Private Sub texbox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles texbox1.Validating
  29:         If texbox1.Text.Length = 0 Then
  30:             ErrorProvider1.SetError(texbox1, "TextBox Satu Harus Diisi !!")
  31:         Else
  32:             ErrorProvider1.Clear()
  33:         End If
  34:     End Sub
  35:  
  36:     Private Sub btnSimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSimpan.Click
  37:         Dim t() As TextBox = {texbox1, txtNIS, txtNama, txtAlamat, txtDesa, txtTempatLahir, txtKecamatan, txtKota _
  38:        , txtKodePos, txtNoTelepon, txtJumlah, TxtKeterangan}
  39:         If Validasi(t) Then
  40:             MessageBox.Show("Anda telah menulis data dengan benar")
  41:         End If
  42:     End Sub
  43: End Class


 Nah untuk source code yang ini bisa didownload disini