2011-01-11 17 views
2

在我的DataGridView上,我將SelectionMode設置爲FullRowSelect。當我在DataGridView中選擇多行並左鍵單擊某個單元格時,將取消選擇所有其他行,並且只選中我左鍵單擊的行。這不會發生在右鍵單擊上。DataGridView在左邊選擇保留多行Select

如何設置我的DataGridView,以便我可以選擇多行,左鍵單擊單元格,並且所有相同的行保持選擇狀態?

回答

2

這可能很難,因爲它違反了Windows的標準UI行爲。您可能需要讓您的用戶界面跟蹤DGV中選擇哪些行,並在左鍵單擊後更改之前的選擇。不過,這會給你帶來更多的問題。即:

  • 如何/何時重置選擇?
  • 如果左鍵單擊不允許更改選擇,那麼您如何選擇行?
  • Et cetera。

的更全面的替代方法是陷阱的DGV所有MouseDown/Click事件,並實現自己的選擇行爲,雖然我不知道到什麼程度,甚至有可能與WinForms的。

我的小見解是重新考慮這個UI設計。它是否符合用戶的期望? :)

更新:替代的替代剛剛發生,我認爲:如果這種行爲是出於某種原因,完全必要的,最好的辦法是創建,增加了一種選擇的」鎖定自定義控件「狀態到DataGridView。然後,用戶可以明確地向Windows的默認行爲請求覆蓋(例如,通過選擇行然後單擊鎖定按鈕)。然而,構建這樣的東西並不是微不足道的。

+0

是的,建議的行爲將是糟糕的UI設計。 – Jonathan 2011-01-11 19:20:15