C#操作DataGridView設置單元格隻讀
一、修改ReadOnly屬性
1、設置整個DataGridView隻讀:
DataGridView.ReadOnly=true;
此時用戶的新增行和刪除行操作也被屏蔽瞭。
2、設置DataGridView內某個單元格不可編輯,例如:設置第二行第一列的單元格不可編輯:
this.dgv_PropDemo[0, 1].ReadOnly = true;
3、設置DataGridVIew的某列整列不可編輯,例如:設置第二列不可編輯:
this.dgv_PropDemo.Columns[1].ReadOnly = true;
4、設置DataGridView的某行整行不可編輯,例如:設置第三行不可編輯:
this.dgv_PropDemo.Rows[2].ReadOnly = true;
二、使用EditMode屬性
EditMode屬性:獲取或設置一個值,該值指示如何開始編輯單元格,屬性值是DataGridViewEditMode枚舉值之一。
成員名稱 | 說明 |
EditOnEnter | 當單元格接收到焦點時即可開始編輯。在按 Tab 鍵在行中橫向輸入值,或按 Enter 鍵在列中縱向輸入值時,此模式非常有用。 |
EditOnF2 | 當單元格獲得焦點時按 F2 開始編輯。此模式將選擇點放置在單元格內容的末尾。 |
EditOnKeystroke | 當單元格獲得焦點時按任意字母數字鍵開始編輯。 |
EditOnKeystrokeOrF2 | 當單元格獲得焦點時按任意字母數字鍵或 F2 開始編輯。 默認值 |
EditProgrammatically | 僅在調用 BeginEdit 方法時開始編輯。 |
註:除瞭EditProgrammatically
之外,所有DataGridViewEditMode值都允許用戶通過雙擊單元格來開始編輯該單元格。
當DataGridView的EditMode屬性被設置為EditProgrammatically時,用戶就不能手動編輯單元格的內容瞭。但是可以通過程序,調用DataGridView.BeginEdit方法,使單元格進入編輯模式進行編輯。
例如:
this.dgv_PropDemo.BeginEdit(true);
三、根據條件設定單元格的不可編輯狀態
當一個一個的通過單元格坐標設定單元格ReadOnly屬性的方法太麻煩的時候,你可以通過CellBeginEdit事件來取消單元格的編輯。
示例:
private void dgv_PropDemo_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e) { DataGridView dgv = sender as DataGridView; //當前單元格的列名稱等於Sex並且當前單元格的值等於“男”的時候取消編輯 if (dgv.Columns[e.ColumnIndex].Name == "Sex" && dgv[e.ColumnIndex, e.RowIndex].Value.ToString().Trim() == "男") { //取消編輯 e.Cancel = true; } }
到此這篇關於C#操作DataGridView設置單元格隻讀的文章就介紹到這瞭。希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。
推薦閱讀:
- C#操作DataGridView獲取或設置當前單元格的內容
- C#數據表格(DataGridView)控件的應用案例
- DataGridView實現點擊列頭升序和降序排序
- C#數據庫操作的示例詳解
- 詳解DataGridView控件的數據綁定