我有2个网格。当用户在一个网格中进行编辑时,我想禁止其他网格获得焦点,或者至少禁止其他网格更改其焦点行。
实施例: 父网格,子网格。
如果用户正在特定父母的孩子进行编辑。我想阻止用户突然将焦点转移到不同的父行。怎么做?
答案 0 :(得分:1)
阻止控件获得焦点的唯一方法是更改它的已启用或可见属性。
只需将父级的Enabled属性更改为“false”(例如,对于CellBeginEdit),然后再将其更改为“true”(例如,在CellEndEdit事件中)将阻止用户选择新的父行。
答案 1 :(得分:0)
有很多方法可以做到这一点,但这就是我将如何做到这一点(只是一个概念,所以忽略任何属性不匹配):
创建一个名为mode的属性,然后使用枚举将其设置为Edit或None等。
假设您有GridViewParent和GridViewChild。在子网格的FocusedRow事件中,在所有代码的开头,将mode的值设置为Edit,并在事件的所有代码的末尾将其设置为None。
然后在父网格的FocusedRow事件中检查模式值是否为编辑,如果是编辑,则使用e.Cancel或其他东西离开父母的焦点事件。
现在,如果您让我知道您正在使用哪个网格,我可能会向您发送代码。