Senin, 02 Maret 2015

Formating Text Box VB.Net

Standard
Sebagai programmer selain dituntut menghasilkan program yang minim bug kita juga dituntut untuk membuatnya mudah di operasikan. Salah satu seni pada trik ini ialah format pada saat input data khususnya pada textbox. Formating ini ialah meberitana “.” Ketika user menginputkan data angka. Tanda titik tersebut memisahkan angka berkelipatan ribuan. Dengan formatting ini diharapkan meminimalisir kesalahan user dalam menginputkan data angka yang biasanya sanga riskan khusunya inputan data keuangan.




Langkah pertama kita pastikan adanya validasi” hanya angka yang dapat dimasukan serta beberapa tombol pengecualian seperti backspace, delete dan Esc” pada event keypress di sebuah textbox kita ambil contoh “TxtNominalsetor”.

Private Sub TxtNominalsetor_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtNominalsetor.KeyPress

        'If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = vbBack) Then e.Handled() = True
        Dim KeyAscii As Short = Asc(e.KeyChar)
        If (e.KeyChar Like "[0-9]" _
            OrElse KeyAscii = Keys.Back _
            OrElse KeyAscii = Keys.Return _
            OrElse KeyAscii = Keys.Delete) Then
            KeyAscii = 0
        End If

        e.Handled = CBool(KeyAscii)

End Sub
Kemudian pada event textchanged;
Private Sub TxtNominalsetor_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TxtNominalsetor.TextChanged
        If Microsoft.VisualBasic.Len(TxtNominalsetor.Text) = 0 Then
            Exit Sub
        End If
        TxtNominalsetor.Text = FormatNumber(TxtNominalsetor.Text, 0)
        TxtNominalsetor.SelectionStart = Microsoft.VisualBasic.Len(TxtNominalsetor.Text)

    End Sub

Agar data yang berformat tadi masuk ke database tanpa masalah, tentu perlu adanya proses formatting kembali ke format normal. Gunakan perintah berikut :
Dim normalangka As Double
                normalangka = Format(TxtNominalsetor.Text, "General Number")
Gunakan variable “normalangka” untuk data yang akan disave 

11 komentar:

  1. makasih gan nyari2 di google nggak ketemu2... baru ketemunya disini,,,

    BalasHapus
  2. Dim normalangka As Double
    normalangka = Format(TxtNominalsetor.Text, "General Number")
    coding yg in disimpan dimana y..

    BalasHapus
    Balasan
    1. Kan ada tab design dan tab code.
      Nah script itu di tulis di tab code gan.

      Hapus
  3. kalau misalkan melakukan penjumlahan dengan format diatas apa kodingnya gan?
    aku dah coba pakai val buat jumlahin tapi gak bisa

    BalasHapus
    Balasan
    1. Gunakan variabel pengubah format angka. Di contohkan di atas nolmaangka.

      Hapus
  4. maaf bos,,,ketika saya input misal 10000 (sepuluh ribu)
    kenapa munculnya 1.0000 dan bukannya 10.000
    salah dimananya ya bos

    BalasHapus
  5. ada bug "conversion from string to type long is not valid" ktk klik simpan, alhamdulillah solved dgn ini :
    txtterbilang.Text = Terbilang(CStr(txtbiaya.Text))

    BalasHapus
  6. Thanks bang nyari" artikel lain blm ada yang work di mari malah work :)

    BalasHapus