【发布时间】:2018-05-12 07:40:36
【问题描述】:
我在 DataGridView 中有双击事件,如下所示:
private void gridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
// put something here to cancel the edit
Form dialogForm = new dialogContainerForm(username);
dialogForm.ShowDialog(this);
}
当这个双击触发时,它会调用另一个窗体,当这个子窗体关闭时,它会加载网格:
public void callWhenChildClick(List<string> codes)
{
//some code here
Grid_Load();
}
我有单元格验证,当这个Grid_Load() 调用时总是触发:
private void gridView_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
string code = e.FormattedValue.ToString();
string headerText = gridView.Columns[e.ColumnIndex].HeaderText;
if (!headerText.Equals("No. Transaksi")) return;
if (string.IsNullOrEmpty(code))
{
MessageBox.Show("No. Transaksi tidak boleh kosong!");
e.Cancel = true;
}
}
如何忽略此单元格仅针对这种情况进行验证Grid_Load()?或者是否有任何功能可以取消编辑并在单元格双击时忽略验证?
【问题讨论】:
-
您是否尝试在调用 Grid_Load 之前删除 gridView_CellValidating 事件处理程序,然后在完成后将其重置?
-
@JayV :在调用 grid_load 之前删除事件是什么意思?
-
将
gridView.CellValidating -= gridView_CellValidating放在调用Grid_Load 之前,然后将gridView.CellValidating += gridView_CellValidating放在它之后以重置它 -
@JayV :这确实有效,你能把它作为答案吗?谢谢
标签: c# winforms datagridview