如何防止gridview获得焦点?

时间:2011-11-22 09:48:08

标签: c# winforms devexpress

我有2个网格。当用户在一个网格中进行编辑时,我想禁止其他网格获得焦点,或者至少禁止其他网格更改其焦点行。

实施例: 父网格,子网格。

如果用户正在特定父母的孩子进行编辑。我想阻止用户突然将焦点转移到不同的父行。怎么做?

2 个答案:

答案 0 :(得分:1)

阻止控件获得焦点的唯一方法是更改​​它的已启用或可见属性。

只需将父级的Enabled属性更改为“false”(例如,对于CellBeginEdit),然后再将其更改为“true”(例如,在CellEndEdit事件中)将阻止用户选择新的父行。

答案 1 :(得分:0)

有很多方法可以做到这一点,但这就是我将如何做到这一点(只是一个概念,所以忽略任何属性不匹配):

创建一个名为mode的属性,然后使用枚举将其设置为Edit或None等。

假设您有GridViewParent和GridViewChild。在子网格的FocusedRow事件中,在所有代码的开头,将mode的值设置为Edit,并在事件的所有代码的末尾将其设置为None。

然后在父网格的FocusedRow事件中检查模式值是否为编辑,如果是编辑,则使用e.Cancel或其他东西离开父母的焦点事件。

现在,如果您让我知道您正在使用哪个网格,我可能会向您发送代码。