我有2個網格。當用戶在一個網格中進行編輯時,我想禁用另一個網格獲取焦點,或者至少其他網格更改其焦點行。如何防止gridview獲得焦點?
示例: 父網格,子網格。
如果用戶正在編輯特定父級的孩子。我想阻止用戶突然將焦點轉移到不同的父行。怎麼做 ?
我有2個網格。當用戶在一個網格中進行編輯時,我想禁用另一個網格獲取焦點,或者至少其他網格更改其焦點行。如何防止gridview獲得焦點?
示例: 父網格,子網格。
如果用戶正在編輯特定父級的孩子。我想阻止用戶突然將焦點轉移到不同的父行。怎麼做 ?
您可以防止接收焦點的控件的唯一方法是更改它的啓用或可見屬性。
只需將父項的Enabled屬性更改爲「false」(例如對於CellBeginEdit),然後返回「true」(例如在CellEndEdit事件中),將會阻止用戶選擇新的父行。
我正在使用DevExpress.XtraGrid.Views.Grid其實我嘗試使用Enabled並且它工作正常,只是問題是它變得太灰色以至於看不到。我可以在不更改視覺屬性的情況下禁用,以便用戶不會感覺任何更改。 –
我對這個控件並不是很熟悉。但是,殘疾人控制的顏色變化是人們之前抱怨的。 我聽到的唯一解決方案是手動更改BackgroundColor。 它看起來像這個Gridview可能有更多的選擇...你看過http://documentation.devexpress.com/#WindowsForms/CustomDocument755嗎? –
有很多方法可以做到這一點,但,這是我會怎麼做(只是一個概念,從而忽略,如果任何屬性不匹配):
創建一個屬性調用模式,然後使用枚舉來設置它編輯或無等
假設你有GridViewParent和GridViewChild。在子網格的FocusedRow事件中,在所有代碼的開始處,將模式的值設置爲「編輯」,並在事件的所有代碼的末尾將其設置爲「無」。
然後在父網格的FocusedRow事件中檢查模式值是否被編輯,如果是編輯,那麼使用e.Cancel或其他來獲取父級的焦點事件。
現在,如果你讓我知道你究竟使用哪個網格,我可能會向你發送代碼。
我正在使用DevExpress.XtraGrid.Views.Grid其實我嘗試使用Enabled,它工作正常,唯一的問題是,它變得太灰顯可見。我可以在不更改視覺屬性的情況下禁用,以便用戶不會感覺任何更改。 –
您是否嘗試將您的父級Gridview設置爲Enabled = false?這應該防止控制獲得重點。 – Alex
我正在使用DevExpress.XtraGrid.Views.Grid其實我嘗試使用Enabled,它工作正常,唯一的問題是,它變得太灰顯可見。我可以在不更改視覺屬性的情況下禁用,以便用戶不會感覺任何更改 –