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
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
相关文章推荐
- C# Winform Datagridview中单元格验证输入的内容是否为数字
- c# 实现DataGridView中的单元格只能输入数字和点
- WinForm中DataGridView验证单元格输入的是数字
- C#验证:限制TextBox只能输入数字并控制输入数字的长度(数字)
- C#Winform限制Textbox只能输入数字
- C# 文本输入限制类型,datagridview单元格输入验证
- dataGridView中限制某列/单元格只能输入数字
- C#Winform限制Textbox只能输入数字
- C# winform中文本框限制只能输入数字和字母,退格键
- C#Winform限制Textbox只能输入数字
- C#winform中如何限制txtbox输入只能是数字和特定字母X
- C#Winform限制Textbox只能输入数字
- WinForm中DataGridView验证单元格输入的是数字
- winform下dataGridView中限制某列只能输入数字
- WPF C# VS2013 TextBox控件 限制只能输入数字
- C#-WinForm-TextBox中只能输入数字的几种常用方法(C#)
- .net(c#) winform文本框只能输入数字,不能其他非法字符
- Winform TextBox中只能输入数字的几种常用方法(C#)
- C#winform只能输入数字后不能复制粘贴问题
- Winform TextBox中只能输入数字的几种常用方法(C#)