// // Membuat textbox dan DataGridView cells hanya boleh diinput dengan angka - Geeks Portal

Membuat textbox dan DataGridView cells hanya boleh diinput dengan angka

Last post 02-07-2009 18:57 by sonny210183. 0 replies.
Page 1 of 1 (1 items)
Sort Posts: Previous Next
  • 02-07-2009 18:57

    Membuat textbox dan DataGridView cells hanya boleh diinput dengan angka

    ini khusus Windows Form, qlo di web form kan sudah ada kontrol khusus untuk validator.


    Khusus tipe double yg hanya boleh pake angka trus titik, karakter titik pun cuma boleh sekali saja dan biasa diletakkan setelah angka. Ini diletakkan pada event textbox bernama _KeyPress. misalkan txtTotalCost adalah textbox. Maka methodnya adalah seperti ini

     private void txtTotalCost_KeyPress(object sender, KeyPressEventArgs e)
            {

      if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar) && e.KeyChar != '.')
                {
                    e.Handled = true;
                }

                if (e.KeyChar == '.' && txtTotalCost.Text.Contains("."))
                {
                    e.Handled = true;
                }

                if (e.KeyChar == '.' && this.Text.Length < 1)
                {
                    e.Handled = true;
                }

     }

     

    lalu jika hanya boleh integer saja (untuk quantity misalnya), maka akan menjadi seperti ini saja isinya:

                if ((e.KeyChar < '0' || e.KeyChar > '9') && Convert.ToInt16(e.KeyChar) != 8)
                    {
                        e.Handled = true;
                    }

     Itu semua hanya untuk textbox, lalu untuk suatu cells di datagridview maka yang perlu dilakukan adalah menambahkan kode pada event DataGridview _EditingControlShowing

     Misalnya myDGV adalah nama DataGridView, lalu tambahkan kode ini

      private void myDGV_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
            {

    e.Control.KeyPress +=
            new KeyPressEventHandler(Control_KeyPress);

      }

     Setelah itu buat isi method Control_KeyPress

             private void Control_KeyPress(object sender, KeyPressEventArgs e)
            {

                String kolomditunjuk=gvConAssetContract.CurrentCell.OwningColumn.Name;
                String nilaicell;
                if (gvConAssetContract.CurrentCell.EditedFormattedValue == null)
                
                    nilaicell = "";
                 else
                    nilaicell = gvConAssetContract.CurrentCell.EditedFormattedValue.ToString();

     //misalnya kolom BiayaSewa, HargaPerUnit adalah kolom yg bertipe double/money

      if (kolomditunjuk == "BiayaSewa" || kolomditunjuk == "HargaPerUnit ") //jika masih ada kolom laen, tambahkan || kolomditunjuk="..."

     { //hanya boleh angka+backspace+titik (.)
                    if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar) && e.KeyChar != '.')
                    {
                        e.Handled = true;
                    }

                    if (e.KeyChar == '.' && nilaicell.Contains("."))
                    {
                        e.Handled = true;
                    }

                    if (e.KeyChar == '.' && nilaicell.Length < 1)
                    {
                        e.Handled = true;
                    }

                }

     else if (kolomditunjuk=="Stock" || kolomditunjuk="UnitYangDiminta") 
                { //misalkan stock dan unityang diminta hanya boleh diinput dengan tipe data integer

     

     if ((e.KeyChar < '0' || e.KeyChar > '9') && Convert.ToInt16(e.KeyChar) != 8)
                    {
                        e.Handled = true;
                    }
                }

                
                }

     

    • Post Points: 5
Page 1 of 1 (1 items)