以下代碼使DataGridView
Column4
只接受數值和一個十進制點.
,它例如工作正常,它接受的值,如(4.50,3.00,13.60)如何做出一定的datagridview列只接受在C#中的數值
但問題是:我仍然可以在單元格內保存小數點(沒有任何數字只是小數點),我不希望單元格只有小數點,因爲sql數據庫(錢列)做不接受只有小數點。
任何人都知道如何防止Column4
中的單元格不接受僅小數點,而是接受如下值:(4.50,3.00,13.60)?
請幫忙,謝謝
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
e.Control.KeyPress -= new KeyPressEventHandler(AnyColumnKeyPress);
if (dataGridView1.CurrentCell.ColumnIndex == 4) //Desired Column
{
TextBox tb = e.Control as TextBox;
if (tb != null)
{
tb.KeyPress += new KeyPressEventHandler(AnyColumnKeyPress);
}
}
}
private void AnyColumnKeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && e.KeyChar != '.')
{
e.Handled = true;
}
// allow 1 dot:
if ((e.KeyChar == '.') && ((sender as TextBox).Text.IndexOf('.') > -1))
{
e.Handled = true;
}
}
@Fabjan。對不起,我是c#的新手。你能解釋在哪裏使用你的代碼?謝謝 – Kate
凱特你已經解決了這個問題嗎? – Fabjan
@Fabjan,不,我沒有。任何想法? – Kate