如何让一个正在编辑的,并且带有单元验证的datagridview 失去焦点?
时间: 2024-03-13 14:44:22 浏览: 81
您可以通过以下方式让一个正在编辑的,并且带有单元验证的 DataGridView 失去焦点:
1. 调用 `DataGridView.EndEdit()` 方法来结束当前单元格的编辑模式。
2. 设置 `DataGridView.CurrentCell` 属性为 null,这将取消当前单元格的选择状态并使 DataGridView 失去焦点。
3. 调用 `DataGridView.BindingContext[DataGridView.DataSource].EndCurrentEdit()` 方法来结束数据源的当前编辑会话。
示例代码如下:
```
// 结束单元格编辑模式
dataGridView1.EndEdit();
// 取消当前单元格的选择状态
dataGridView1.CurrentCell = null;
// 结束数据源的当前编辑会话
dataGridView1.BindingContext[dataGridView1.DataSource].EndCurrentEdit();
```
请注意,在 `DataGridView.EndEdit()` 方法之后,您还可以使用 `DataGridView.CancelEdit()` 方法来取消当前单元格的编辑修改。
相关问题
我是在另外一个datagridview上点击,如何让一个正在编辑的,并且带有单元验证的datagridview 失去焦点?
如果您想在另一个 DataGridView 上单击时使正在编辑的 DataGridView 失去焦点,可以使用以下方法:
1. 在另一个 DataGridView 的 `CellClick` 事件中,调用正在编辑的 DataGridView 的 `EndEdit` 方法来结束当前单元格的编辑模式。
2. 设置正在编辑的 DataGridView 的 `CurrentCell` 属性为 null,这将取消当前单元格的选择状态并使 DataGridView 失去焦点。
3. 调用 `DataGridView.BindingContext[DataGridView.DataSource].EndCurrentEdit()` 方法来结束数据源的当前编辑会话。
示例代码如下:
```
private void dataGridView2_CellClick(object sender, DataGridViewCellEventArgs e)
{
// 结束正在编辑的 DataGridView 的单元格编辑模式
dataGridView1.EndEdit();
// 取消当前单元格的选择状态
dataGridView1.CurrentCell = null;
// 结束数据源的当前编辑会话
dataGridView1.BindingContext[dataGridView1.DataSource].EndCurrentEdit();
}
```
请注意,在这种情况下,您需要将正在编辑的 DataGridView 的实例传递给另一个 DataGridView 的事件处理程序。您可以在创建另一个 DataGridView 实例时将其保存到类级别变量中,然后在事件处理程序中使用它。
阅读全文