Home > Visual C# > Beberapa fungsi sederhana yang sering digunakan

Beberapa fungsi sederhana yang sering digunakan

November 22, 2011

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🙂

  1. ipank
    November 24, 2011 at 1:51 am

    Huruf e yang ada pada source code di atas artinya apa Pak Admin ,,,, ?

    • November 24, 2011 at 2:59 am

      e itu parameter method om

  2. ipank
    November 29, 2011 at 6:17 am

    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 ,,,,, ?

    • November 29, 2011 at 8:59 am

      Bisa om, tinggal ganti aja enggak masalah.
      Nama parameter method itukan seperti variabel

      • ipank
        November 30, 2011 at 5:59 am

        o bg2 y, trimakasih Pak Admin ,,,,,

        • December 1, 2011 at 7:42 am

          Sama2x om

  3. December 6, 2011 at 7:00 pm

    bang…………
    ada masalah lagi nih dengan treeview….

    permasalahhannya dah tak kirim lewat email…😀

    terima kasih sebelumnya…😀

    • December 9, 2011 at 3:27 pm

      Lom sempat om😛

  4. Irfan
    December 20, 2011 at 7:20 pm

    Assalamu Alaikum…
    gimana mas membuat paket instalasi utk aplikasi shareware dan cara menghilangkan sharewarenya itu. mohon dibahas ya. Jazakallahu khaeran

    • December 23, 2011 at 2:39 pm

      Waalaikumussalam
      Maksudnya g mana om ?

  5. January 12, 2012 at 10:42 am

    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😀

  6. August 17, 2013 at 6:17 pm

    fungsi thousand separatornya kok gk sesuai yg d harapkan ya min ?? hasilnya misal kita input 1467000 jadi 1.467000

    • August 18, 2013 at 5:14 am

      Coba gunakan setting regional English (United States)

  1. No trackbacks yet.
Comments are closed.
%d bloggers like this: