您的位置:首页 > 编程语言 > C#

C# Winform 中验证DataGridView单元格内容--限制单元格中只能输入数字

2014-02-26 16:31 597 查看
为避免在DataGridView的单元格中输入错误的数据类型导致保存错误,可以用下面代码解决:

1、先设置DataGridView只能输入数字的列的外观属性:(见图1)

DefaultCellStyle为:DataGridViewCellStyle { NullValue=0, Format=N2}

其中,NullValue=0表示此单元格为空时的默认值为0,Format=N2则代表格式化



图1

2、然后编写DataGridView的EditingControlShowing事件:

TextBox control; //定义输入框控件对象

private void dataGridView1_EditingControlShowing(object sender,

DataGridViewEditingControlShowingEventArgs e)

{

//只对TextBox类型的单元格进行验证

if (e.Control.GetType().BaseType.Name == "TextBox")

{

control = new TextBox();

control = (TextBox)e.Control;

if (control.Text == "0") //需要限制输入数字的单元格

{

control.KeyPress += new KeyPressEventHandler(control_KeyPress);

}

else

{

//非数字类型单元格

control.Leave += new EventHandler(control_Leave);

}

}

}

void control_KeyPress(object sender, KeyPressEventArgs e)

{

//限制只能输入-9的数字,退格键,小数点和回车

if (((int)e.KeyChar >= 48 && (int)e.KeyChar <= 57) || e.KeyChar == 13 || e.KeyChar == 8 || e.KeyChar == 46)

{

e.Handled = false;

}

else

{

e.Handled = true;

MessageBox.Show("只能输入数字!");

}

}

void control_Leave(object sender, EventArgs e)

{

//如果需要限制字符串输入长度

if (control.Text.Length != 11)

{

MessageBox.Show("只能为位!");

control.Focus();

}

}
原文地址:http://blog.csdn.net/i3039/article/details/5131522
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: