Dot-Net
禁用數據網格視圖中的行選擇
我想禁用數據網格視圖中某些行的選擇。
必須可以刪除 winform 中顯示的 datagridview 中一個或多個 datagridview 行的 select 屬性。目標是使用者不能選擇某些行。(根據條件)
謝謝,
如果 SelectionMode 是 FullRowSelect,那麼您需要為該 DataGridView 覆蓋 SetSelectedRowCore,而不是為您不想選擇的行呼叫基本 SetSelectedRowCore。
如果 SelectionMode 不是 FullRowSelect,您將需要另外覆蓋 SetSelectedCellCore(並且不要為您不想選擇的行呼叫基本 SetSelectedCellCore),因為 SetSelectedRowCore 只有在您點擊行標題而不是單個單元格時才會啟動。
這是一個例子:
public class MyDataGridView : DataGridView { protected override void SetSelectedRowCore(int rowIndex, bool selected) { if (selected && WantRowSelection(rowIndex)) { base.SetSelectedRowCore(rowIndex, selected); } } protected virtual void SetSelectedCellCore(int columnIndex, int rowIndex, bool selected) { if (selected && WantRowSelection(rowIndex)) { base.SetSelectedRowCore(rowIndex, selected); } } bool WantRowSelection(int rowIndex) { //return true if you want the row to be selectable, false otherwise } }如果您使用的是 WinForms,請打開您的 Designer.cs 以獲取相關表單,並將您的 DataGridView 實例的聲明更改為使用這個新類而不是 DataGridView,並替換 this.blahblahblah = new System.Windows.Forms。 DataGridView() 指向新類。