1. 千萬不要使用DataGridViewX中的DataGridViewCheckBoxXColumn,而是用DataGridViewCheckBoxColumn
也許會有人覺得既然DataGridViewX提供了DataGridViewCheckBoxXColumn,為什麼還要用系統的DataGridViewCheckBoxColumn,難道系統內建的功能會更強大嗎?
請相信我,系統內建的DataGridViewCheckBoxColumn的功能也許並不強大,但是絕對穩定,理由有二:
a. 使用DataGridViewCheckBoxXColumn,在想選中複選框時幾乎無法做到一選必中,必須滑鼠移動到某個特定的位置,複選框變色之後點擊才能成功,即使我知道這個訣竅,
也無法保證每次都能選中,這對使用者來說是一個非常糟糕的體驗。
b. 這個理由絕對比上一個理由更加重要,也是困擾了我好幾個月的一個問題。話說DataGridViewX要和Form同步變化尺寸,這個需求再正常不過了,但是我有兩個表單,在一段時間修改之後發現DataGridViewX的Anchor屬性不起作用了!具體的說並不是完全不起作用,而是在表單首次出現並最大化(form.WindowState = FormWindowState.Maximized;)時不起作用,表單正常出現之後再調整表單大小則可以同步變化大小了,經過很長時間的不明所以,終於下定決心把表單代碼完全簡化之後去尋找問題根源,再經過一行行代碼的抽絲剝繭之後,好吧,不用我說了,問題的根源就在於DataGridViewCheckBoxXColumn,我使用了它來顯示某些是非值的資料,甚至我都不需要刪除表格中使用的DataGridViewCheckBoxXColumn,只要隱藏了它,Anchor屬性就完全生效了。
綜上,至少目前我的項目裡必須使用DataGridViewCheckBoxColumn,至於DataGridViewCheckBoxXColumn,等到確實有需要它的時候再說吧。
至於原因嘛,個人猜測是DataGridViewCheckBoxXColumn的綁定資料的代碼有Bug,呵呵。