在Windows 窗体编程时,经常会用到DataGridView控件,该控件可以进行数据输入,输入完毕后,有时需要把数据存入数据库中.数据输入格式有误的话,提交时可能会出现异常,并不会把数据存入数据库.用DataGridView控件的KeyPress事件进行输入验证,发现不起作用.这时可以用另一种方法进行数据验证.
假设要求只能输入数值,长度为10.
先添加DataGridView控件的EditControlShowing事件.
我们验证数据输入,是对单元格中的文本框进行验证.先定义一个文本框对象.
TextBox control;
private void dataGridView1_EditingControlShowing(object sender,
DataGridViewEditingControlShowingEventArgs e)
{
cotrol = new TextBox();
cotrol = (TextBox)e.Control;
cotrol.KeyPress+=new KeyPressEventHandler(cotrol_KeyPress);
}
,该事件是当编辑单元格控件时发生,在事件中有一个控件对象,用该对象来初始化control对象.并添加文本框的KeyPress事件,即键盘输入验证事件.在 KeyPress事件中可以对验证的条件进行编辑.
private void cotrol_KeyPress(object sender, KeyPressEventArgs e)
{
if (char.IsNumber(e.KeyChar) && cotrol.Text.Length < 10)
{
e.Handled = false;
}
else
{
e.Handled = true;
}
}
按照要求,是数字并长度小于10时,可以输入,否则不能输入.还可以对数据输入进行更复杂的验证,比如价格数据的输入等.