网格视图的第二列只接受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)