微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果用户尝试选择当前行 C# 前列中的单元格,如何停止验证 datagridview 单元格

如何解决如果用户尝试选择当前行 C# 前列中的单元格,如何停止验证 datagridview 单元格

我有一个包含 5 列的 datagridview,在代码中我还添加了 datagridview1__CellValidating 事件。 当前,当用户尝试修改单元格值然后离开单元格时,会触发 datagridview1__CellValidating 事件,但我不希望始终触发 datagridview1__CellValidating。

就我而言,假设我正在尝试修改第 3 列的值,然后单击\选择当前行的第 2 列或第 1 列中的单元格。在这种情况下,我不希望触发 datagridview1__CellValidating。我可以在 datagridview1__CellValidating 中添加任何条件吗?

但如果我尝试选择当前行中第 4 或 5 列的单元格,我希望在修改第 2 列的值后执行 datagridview1__CellValidating。

是否有任何解决方案\解决方法

解决方法

CellValidating 中使用 DataGridView 事件并取消对第 1 列和第 2 列的编辑。

private void DataGridView1_CellValidating(object sender,DataGridViewCellValidatingEventArgs e)
{
    DataGridViewCellCollection cells = dataGridView1.Rows[e.RowIndex].Cells;
    foreach(DataGridViewCell cell in cells)
    {
       if(cell.ColumnIndex == 0 || cell.ColumnIndex == 1)
       {
          e.Cancel = true;
       }
    }
}

并覆盖关闭表单的按钮,因为使用 e.Cancel = true 您无法关闭表单。

protected override void OnFormClosing(FormClosingEventArgs e)
{
   e.Cancel = false;
   base.OnFormClosing(e);
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?