如何解决如果用户尝试选择当前行 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 举报,一经查实,本站将立刻删除。