gpt4 book ai didi

c# - DataGridView 验证 - 删除错误指示器

转载 作者:行者123 更新时间:2023-11-30 16:19:36 26 4
gpt4 key购买 nike

我正在使用以下代码验证 DataGridView ...

void centreDataGridView_CellValidating(object sender, 
DataGridViewCellValidatingEventArgs e)
{
if (centreDataGridView.Columns[e.ColumnIndex].Name == "code")
{
Regex codeRegex = new Regex("^[0-9]{5}[0-9A-Z]$");
if (!codeRegex.IsMatch(e.FormattedValue.ToString()))
{
centreDataGridView.Rows[e.RowIndex].ErrorText = "error text here";
}
}
}

void centreDataGridView_CellEndEdit(object sender,
DataGridViewCellEventArgs e)
{
centreDataGridView.Rows[e.RowIndex].ErrorText = string.Empty;
}

这行得通,除了如果我输入新行然后在没有输入任何数据的情况下再次离开它,错误警告图标在新行选择器中仍然可见。我该如何清除它?

根据目前收到的建议,我修改了上面的代码如下......

void centreDataGridView_CellValidating(object sender, 
DataGridViewCellValidatingEventArgs e)
{
if (centreDataGridView.Columns[e.ColumnIndex].Name == "code")
{
if (!(centreDataGridView.Rows[e.RowIndex].IsNewRow) ||
(e.FormattedValue.ToString() != string.Empty))
{
Regex codeRegex = new Regex("^[0-9]{5}[0-9A-Z]$");
if (!codeRegex.IsMatch(e.FormattedValue.ToString()))
{
centreDataGridView.Rows[e.RowIndex].ErrorText = "error text here";
}
}
}
}

这确实解决了没有输入数据时在新行旁边显示错误指示符的问题。但是,当我输入无效数据时,在任何行中,当我在输入无效数据后第一次移出该行时,没有显示错误指示符。如果我移出包含无效数据的行,然后移回该行,然后再次移出该行,则会显示错误指示器。

最佳答案

好的,我相信我现在明白了。我在 CellValidating 事件处理程序的开头将 ErrorText 设置为空字符串,而不是在 CellEndEdit 事件处理程序中,如下所示。这基本上是收到的所有建议的组合,所以谢谢大家,这很有帮助。

void centreDataGridView_CellValidating(object sender, 
DataGridViewCellValidatingEventArgs e)
{
centreDataGridView.Rows[e.RowIndex].ErrorText = string.Empty;
if (centreDataGridView.Columns[e.ColumnIndex].Name == "code")
{
if (!(centreDataGridView.Rows[e.RowIndex].IsNewRow) ||
(e.FormattedValue.ToString() != string.Empty))
{
Regex codeRegex = new Regex("^[0-9]{5}[0-9A-Z]$");
if (!codeRegex.IsMatch(e.FormattedValue.ToString()))
{
centreDataGridView.Rows[e.RowIndex].ErrorText = "blah blah blah";
}
}
}
}

关于c# - DataGridView 验证 - 删除错误指示器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15112844/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com