Dot-Net
為什麼我不能編輯我的 DataGridView 中的值,即使它沒有設置為只讀?
我有一個未設置為只讀的 DataGridView。它的所有列都沒有設置為 ReadOnly,並且它綁定的對像也沒有設置為 ReadOnly。然而,我不能編輯 DataGridView 項目?DataGridView 的 .DataSource 屬性設置為 ReadOnlyCollection<>,但我可以通過程式方式更改元素,但不能從 UI 中更改。這是怎麼回事?
事實證明,如果您的 DataGridView 綁定到 ReadOnlyCollection,那麼即使您可以以程式方式編輯集合中的任何項目,DataGridView 也會限制您更改值。我不確定這種行為是否是故意的,但需要注意。
我昨天剛剛安裝了 VS 2013,最新版本(更新 5)並且仍然存在導致您描述的行為的錯誤。
簡而言之,要解決該錯誤,首先確保將 datagridview 設置為 GUI 可編輯。這尤其包括控制項右上角的表單設計器中的小箭頭。在箭頭下拉菜單中有一個“啟用編輯”選項,確保它已啟用。現在在表單設計器中以某種主要方式編輯列(例如添加或刪除列)。就是這樣,當您執行程序時,您應該會發現 GUI 編輯現在正在工作。
要重現此錯誤,請在表單設計器中使用 datagridview 控制項右上角的小箭頭將“啟用編輯”設置為 false。現在對列進行重大更改(例如添加或刪除列)。編譯並執行程序。現在回到小箭頭並重新啟用“啟用編輯”複選框。再次執行程序。在這一點上,錯誤就顯現出來了,即使您在 VS 中進行了其他配置,您也會發現 datagridview 不是 GUI 可編輯的。