C#操作DataGridView設(shè)置單元格只讀
一、修改ReadOnly屬性
1、設(shè)置整個DataGridView只讀:
DataGridView.ReadOnly=true;
此時用戶的新增行和刪除行操作也被屏蔽了。
2、設(shè)置DataGridView內(nèi)某個單元格不可編輯,例如:設(shè)置第二行第一列的單元格不可編輯:
this.dgv_PropDemo[0, 1].ReadOnly = true;
3、設(shè)置DataGridVIew的某列整列不可編輯,例如:設(shè)置第二列不可編輯:
this.dgv_PropDemo.Columns[1].ReadOnly = true;
4、設(shè)置DataGridView的某行整行不可編輯,例如:設(shè)置第三行不可編輯:
this.dgv_PropDemo.Rows[2].ReadOnly = true;
二、使用EditMode屬性
EditMode屬性:獲取或設(shè)置一個值,該值指示如何開始編輯單元格,屬性值是DataGridViewEditMode枚舉值之一。
成員名稱 | 說明 |
EditOnEnter | 當(dāng)單元格接收到焦點時即可開始編輯。在按 Tab 鍵在行中橫向輸入值,或按 Enter 鍵在列中縱向輸入值時,此模式非常有用。 |
EditOnF2 | 當(dāng)單元格獲得焦點時按 F2 開始編輯。此模式將選擇點放置在單元格內(nèi)容的末尾。 |
EditOnKeystroke | 當(dāng)單元格獲得焦點時按任意字母數(shù)字鍵開始編輯。 |
EditOnKeystrokeOrF2 | 當(dāng)單元格獲得焦點時按任意字母數(shù)字鍵或 F2 開始編輯。 默認(rèn)值 |
EditProgrammatically | 僅在調(diào)用 BeginEdit 方法時開始編輯。 |
注:除了EditProgrammatically
之外,所有DataGridViewEditMode值都允許用戶通過雙擊單元格來開始編輯該單元格。
當(dāng)DataGridView的EditMode屬性被設(shè)置為EditProgrammatically時,用戶就不能手動編輯單元格的內(nèi)容了。但是可以通過程序,調(diào)用DataGridView.BeginEdit方法,使單元格進入編輯模式進行編輯。
例如:
this.dgv_PropDemo.BeginEdit(true);
三、根據(jù)條件設(shè)定單元格的不可編輯狀態(tài)
當(dāng)一個一個的通過單元格坐標(biāo)設(shè)定單元格ReadOnly屬性的方法太麻煩的時候,你可以通過CellBeginEdit事件來取消單元格的編輯。
示例:
?private void dgv_PropDemo_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e) ??????? { ??????????? DataGridView dgv = sender as DataGridView; ??????????? //當(dāng)前單元格的列名稱等于Sex并且當(dāng)前單元格的值等于“男”的時候取消編輯 ??????????? if (dgv.Columns[e.ColumnIndex].Name == "Sex" && dgv[e.ColumnIndex, e.RowIndex].Value.ToString().Trim() == "男") ??????????? { ??????????????? //取消編輯 ??????????????? e.Cancel = true; ??????????? } ??????? }
到此這篇關(guān)于C#操作DataGridView設(shè)置單元格只讀的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C#實現(xiàn)幾十萬級數(shù)據(jù)導(dǎo)出Excel及Excel各種操作實例
本篇文章主要介紹了C#實現(xiàn)幾十萬級數(shù)據(jù)導(dǎo)出Excel及Excel各種操作實例,這里整理了詳細(xì)的代碼,有需要的小伙伴可以參考下。2017-02-02C#將HashTable中鍵列表或值列表復(fù)制到一維數(shù)組的方法
這篇文章主要介紹了C#將HashTable中鍵列表或值列表復(fù)制到一維數(shù)組中方法,涉及C#操作HashTable的相關(guān)技巧,需要的朋友可以參考下2015-04-04