网格视图的第二列只接受c#windows窗体中的数字
我有一个网格视图。在网格视图的第二列中,我只想输入数字 所以我给出了如下代码:网格视图的第二列只接受c#windows窗体中的数字,c#,winforms,C#,Winforms,我有一个网格视图。在网格视图的第二列中,我只想输入数字 所以我给出了如下代码: private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e) { if (e.ColumnIndex == 2) { int i;
private void dataGridView1_CellValidating(object sender,
DataGridViewCellValidatingEventArgs e)
{
if (e.ColumnIndex == 2)
{
int i;
if (!int.TryParse(Convert.ToString(e.FormattedValue), out i))
{
e.Cancel = true;
label1.Text ="please enter numeric";
}
else
{
}
}
}
但在此之前,我想检查此列是否包含任何值?如果任何值包含,那么我只想检查该值是否为数值?我怎样才能做到这一点?任何帮助都非常有用?只需先检查空白字符串,例如:
private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
if (e.ColumnIndex == 1)
{
int i;
if (!string.IsNullOrEmpty(e.FormattedValue) && !int.TryParse(Convert.ToString(e.FormattedValue), out i))
{
e.Cancel = true;
label1.Text ="please enter numeric";
}
else
{
}
}
}
不,先生……错了……我会再检查一遍,让你知道你的问题是“第二栏”,但检查了第三栏——调试器告诉你什么?您的
if
语句都进行过计算吗?如果我想检查第2列和第3列,那么我可以编写if(e.ColumnIndex==1和e.ColumnIndex==2)如果您想检查第2列或第3列中的更改,那么它将是(e.ColumnIndex==1 | e.ColumnIndex==2)