CellValidating仅可输入数字

时间:2016-07-01 17:24:16

标签: c# datagridview

我使用此代码在datagridview上验证整数输入。

private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
    if (string.IsNullOrEmpty(e.FormattedValue.ToString()))
    {
        MessageBox.Show("Cannot Empty!");
        e.Cancel = true;
    }
    else if (...)
    {
        MessageBox.Show("Only can input number!");
        e.Cancel = true;
    }
}

现在我在代码上遇到了麻烦。有没有什么可以给你一个想法?是否可以在这些条件下使用正则表达式?

2 个答案:

答案 0 :(得分:1)

只需使用int.Tryparse并调用一个方法,就像这样,但我没有检查过这段代码,只是一个简单的例子。

private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
    {
        if (string.IsNullOrEmpty(e.FormattedValue.ToString()))
        {
            MessageBox.Show("Cannot Empty!");
            e.Cancel = true;
        }
        else if (!isNumeric(e.FormattedValue.ToString())
        {
            MessageBox.Show("Only can input number!");
            e.Cancel = true;
        }

    }

将方法放在这样的地方

    public static bool IsNumeric(string theNumber)
    {
        if (theNumber == null) throw new ArgumentNullException("theNumber");

        int n;
        bool isNumeric = int.TryParse(theNumber, out n);
        return isNumeric;
    }

答案 1 :(得分:1)

int n;
bool isNumeric = int.TryParse(e.FormattedValue.ToString(), out n);

将此代码放在“if”之前,然后检查isNumeric in else else if block