Beberapa fungsi sederhana yang sering digunakan
1. ConvertToUpper
Sesuai namanya fungsi ini otomatis melakukan konversi ke huruf besar, fungsinya sangat sederhana sekali
private char ConvertToUpper(System.Windows.Forms.KeyPressEventArgs e)
{
return Convert.ToChar(e.KeyChar.ToString().ToUpper());
}
kemudian fungsi diatas kita panggil di event KeyPress
private void txtConvertToUpper_KeyPress(object sender, KeyPressEventArgs e)
{
e.KeyChar = ConvertToUpper(e);
}
2. ConvertToLower
Fungsi berikutnya kebalikan dari fungsi ConvertToUpper yaitu mengkonversi ke huruf kecil.
private char ConvertToLower(System.Windows.Forms.KeyPressEventArgs e)
{
return Convert.ToChar(e.KeyChar.ToString().ToLower());
}
Untuk pemanggilannya juga masih sama di event KeyPress
private void txtConvertToLower_KeyPress(object sender, KeyPressEventArgs e)
{
e.KeyChar = ConvertToLower(e);
}
3. NumericOnly
Fungsi ini hanya mengizinkan input dalam bentuk angka plus titik (.) untuk desimalnya
private bool NumericOnly(System.Windows.Forms.KeyPressEventArgs e)
{
string strValid = "0123456789.";
if (strValid.IndexOf(e.KeyChar) < 0 && !(e.KeyChar == Convert.ToChar(Keys.Back)))
{
return true; // not valid
}
else
{
return false; // valid
}
}
Untuk pemanggilannya juga masih sama di event KeyPress
private void txtNumericOnly_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = NumericOnly(e);
}
Fungsi NumericOnly diatas udah oke banget, tapi sayangnya kita masih bisa menginputkan nilai seperti 25.33.1 atau 25..3.
Intinya untuk tanda titik (.) masih bisa diinputnya lebih dari satu dan ini tidak benar jadi harus kita tambahkan validasi sedikit lagi.
Pertama kita deklarsikan dulu sebuah variabel untuk menyimpan status tanda titik (.).
private bool isDecimal = false;
Kemudian kita tambahkan validasi di event TextChanged untuk mengetahui apakah sudah ada tanda titik yang diinputkan.
private void txtNumericOnly_TextChanged(object sender, EventArgs e)
{
isDecimal = false;
int index = ((TextBox)sender).Text.IndexOf(".");
isDecimal = !(index < 0);
}
Terakhir kita revisi event KeyPressnya
private void txtNumericOnly_KeyPress(object sender, KeyPressEventArgs e)
{
// tambah validasi pengecekan desimal disini
if (isDecimal && (e.KeyChar == Convert.ToChar(".")))
{
e.Handled = true;
}
else
{
e.Handled = NumericOnly(e);
}
}
Yuph sampe disini fungsinya udah tambah oke ![]()
4. LetterOnly
Fungsi yang hanya mengizinkan input berupa huruf besar/kecil plus titik dan spasi, fungsinya mirip sekali dengan fungis NumericOnly hanya karakter yang didaftarkan saja yang berbeda.
private bool LetterOnly(System.Windows.Forms.KeyPressEventArgs e)
{
string strValid = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ. ";
if (strValid.IndexOf(e.KeyChar) < 0 && !(e.KeyChar == Convert.ToChar(Keys.Back)))
{
return true; // not valid
}
else
{
return false; // valid
}
}
Cara penggunaanya juga otomatis masih sama
private void txtLetterOnly_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = LetterOnly(e);
}
5. ThousandSeparator
Fungsi ini otomatis akan menambahkan pemisah ribuan pada inputan berupa angka.
private void SetThousandSeparator(TextBox txt)
{
if (txt.Text.Length > 0)
{
try
{
string s = txt.Text.Replace(",", "");
int i = int.Parse(s);
txt.Text = string.Format("{0:###,###,###}", i);
txt.SelectionStart = txt.Text.Length;
}
catch
{
}
}
}
Untuk pemanggilannya di event TextChanged
private void txtThousandSeparator_TextChanged(object sender, EventArgs e)
{
SetThousandSeparator((TextBox)sender);
}
Agar fungsi SetThousandSeparator bisa bekerja dengan baik tambahkan juga validasi angkanya
private void txtThousandSeparator_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = NumericOnly(e);
}
Kemudian set property TextAlign = Right
FUNGSI PENTING LAINNYA
6. IsEnter
Untuk mendeteksi penekan tombol Enter, sehingga bisa kita manfaatkan untuk perpindahan fokus cursor pada saat input data.
private bool IsEnter(System.Windows.Forms.KeyPressEventArgs e)
{
return (e.KeyChar == (char)Keys.Return);
}
Penggunaanya masih di event KeyPress
private void txtConvertToUpper_KeyPress(object sender, KeyPressEventArgs e)
{
if (IsEnter(e)) SendKeys.Send("{Tab}");
}
7. IsEsc
Untuk mendeteksi penekanan tombol Esc, salah satu implementasinya adalah menutup form aktif dengan menekan tombol Esc.
private bool IsEsc(System.Windows.Forms.KeyPressEventArgs e)
{
return (e.KeyChar == (char)Keys.Escape);
}
Nah jika pada fungsi-fungsi sebelumnya semua fungsinya kita panggil di event TextBox, untuk fungsi IsEsc akan kita panggil di event KeyPress milik objek form.
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if (IsEsc(e)) this.Close();
}
Dan jangan lupa set property KeyPreview = True
Beberapa fungsi diatas sudah saya bundle menjadi satu komponen yang bisa didownload disini.
Selamat mencoba





Huruf e yang ada pada source code di atas artinya apa Pak Admin ,,,, ?
e itu parameter method om
kalo misal d ganti selain huruf e bisa gak y ato memang sudah aturannya pake huruf c, cz sering bgt liat parameter itu pake huruf e ,,,,, ?
Bisa om, tinggal ganti aja enggak masalah.
Nama parameter method itukan seperti variabel
o bg2 y, trimakasih Pak Admin ,,,,,
Sama2x om
bang…………
ada masalah lagi nih dengan treeview….
permasalahhannya dah tak kirim lewat email…
terima kasih sebelumnya…
Lom sempat om
Assalamu Alaikum…
gimana mas membuat paket instalasi utk aplikasi shareware dan cara menghilangkan sharewarenya itu. mohon dibahas ya. Jazakallahu khaeran
Waalaikumussalam
Maksudnya g mana om ?
sobb, thankzz banget atas infonya…
berkunjung ke blog aku ya..
follow : http://rikymetalist.blogspot.com
thankz banget sob,,
blog ini sudah saya follow
Salam Kompak Persahabatan