C# 验证从文件读取的数据的DataGridView单元格
我有一个无界的C# 验证从文件读取的数据的DataGridView单元格,c#,.net,winforms,datagridview,C#,.net,Winforms,Datagridview,我有一个无界的DataGridView,有几列。我创建了一个cellvalizing函数,它运行良好。现在我正试图从文本文件中读取数据,并将其放入DataGridView。但是,当我这样做时,cellvalizing函数从未被调用。是否可以验证这样输入的数据 编辑:这是我的CellValidate函数的一部分: private void Grid_CellValidating(object sender, DataGridViewCellValidatingEventArgs e) {
DataGridView
,有几列。我创建了一个cellvalizing
函数,它运行良好。现在我正试图从文本文件中读取数据,并将其放入DataGridView
。但是,当我这样做时,cellvalizing
函数从未被调用。是否可以验证这样输入的数据
编辑:这是我的CellValidate
函数的一部分:
private void Grid_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
string headerText = Grid.Columns[e.ColumnIndex].HeaderText;
switch (headerText)
{
case "Number":
if (!String.IsNullOrEmpty(e.FormattedValue.ToString()))
{
if (!Regex.IsMatch(e.FormattedValue.ToString(), @"(^\d{1,2}$)"))
{
MessageBox.Show("Number must be a 1 or 2 digit positive number");
e.Cancel = true;
}
}
}
}
当更改当前单元格/行或结束编辑操作时,将触发CellValidating和RowValidating事件。您应该能够使用BeginEdit和EndEdit强制执行验证触发器 你能分享你的代码吗?这是一个非常标准的CellValidating函数,我将在上面发布。当你在GUI中输入一行时,你会得到CellValidating回调,但当你创建新行时,你不会得到CellValidating回调。这是您遇到的问题还是我遗漏了什么?当更改当前单元格/行或结束编辑操作时,将触发CellValidating和RowValidating事件。您应该能够使用BeginEdit和EndEdit强制执行验证触发器。但是,由于您以编程方式放入行/单元格,您可能还想知道是否需要依赖验证机制。您还可以在将要验证的内容添加到数据网格之前“验证”它们。只是一个想法。@Haxx:使用BeginEdit和EndEdit似乎效果不错。谢谢