我使用此代码在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;
}
}
现在我在代码上遇到了麻烦。有没有什么可以给你一个想法?是否可以在这些条件下使用正则表达式?
答案 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