如何防止gridview获得焦点
本文关键字:焦点 gridview 何防止 | 更新日期: 2023-09-27 18:15:19
我有2个网格。当用户在一个网格中进行编辑时,我想禁用另一个网格获得焦点,或者至少禁用其他网格更改其焦点行。
的例子:父网格,子网格。
如果用户正在编辑特定父节点的子节点。我想防止用户突然将焦点转移到不同的父行。怎么做呢?
阻止控件接收焦点的唯一方法是更改它的Enabled或Visible属性。
简单地改变父元素的Enabled属性为"false"(例如CellBeginEdit),然后再回到"true"(例如CellEndEdit事件),将阻止用户选择新的父元素行。
有很多方法可以做到这一点,但这就是我要做的(只是一个概念,所以忽略任何属性不匹配):
创建一个名为mode的属性,然后使用枚举将其设置为Edit或None等。
假设你有GridViewParent和GridViewChild。在子网格的FocusedRow事件中,在所有代码的开始处,将mode的值设置为Edit,在事件中所有代码的结束处将其设置为None。
然后在父网格的FocusedRow事件中检查mode值是否为edit,如果是edit,则使用e.Cancel或其他方法退出父网格的焦点事件。
现在如果你让我知道你使用的是哪个网格,我可能会把代码发给你。