我有一個datagridview
顯示一些數據。數據之間有一些行separator rows
所以這些都是readonly
。在某些情況下,整個datagridview
可能是readonly
。但是當我將其切換回readonly = false
時,所有行都是可編輯的。是否有可能無法再手動設置每行的readonly
屬性,我的排又回到了以前的狀態?的DataGridView只讀「錯誤」
回答
至於我可以看到使用反射器,設置DataGridView.ReadOnly
到true
還將設置ReadOnly
到false
在網格中的所有行和列 - 大概是假設你永遠隨後要再次設置DataGridView.ReadOnly
到false
。
所以我可以看到你爲了避開這個唯一的辦法,就是「記住」這行應該由DataGridViewRow.Tag
設置一個合適的值,然後使用該手動還原ReadOnly
狀態是隻讀的,例如。然而,它似乎很清楚
void DataGridView_ReadOnlyChanged(object sender, EventArgs e)
{
DataGridView dataGridView = (DataGridView) sender;
if (!dataGridView.ReadOnly)
{
// DataGridView.ReadOnly has just been set to false, so we need to
// restore each row's readonly state.
foreach(DataGridViewRow row in dataGridView.Rows)
{
if (row.Tag != null && ((bool)row.Tag))
{
row.ReadOnly = true;
}
}
}
}
:
例如,如果你設置的DataGridViewRow.Tag
屬性true
爲只讀行,你可以處理DataGridView.ReadOnlyChanged
事件與處理程序,看起來像下面未經測試的代碼該DataGridView
沒有設計成允許其ReadOnly
屬性來以這種方式進行切換。也許你可以設計自己的應用程序,讓你永遠不要需要設置DataGridView.ReadOnly
到true
?
例如,如果要防止用戶通過雙擊單元格編輯,你可以設置DataGridView.EditMode
到DataGridViewEditMode.EditProgramatically
,而不是設置DataGridView.ReadOnly
到true
。
或者,我相信你可以切換'。啓用'而不更改單獨的行'.ReadOnly'值。 – JosephHirn 2013-03-20 11:53:55
@Ginosaji,看到更新,切換'EditMode'可能比切換'Enabled'好,因爲大概這仍然允許您從網格中選擇值。 – Joe 2013-03-20 11:55:46
我會嘗試看看EditMode 或者我將不得不再次循環遍歷所有行,將它們設置爲 – 2013-03-20 13:19:33
如果類自己實現,那麼你可以設置你的DataGrid1.ReadOnly = true
,使這些需要是隻讀屬性爲只讀。
這樣的:
string _myProperty;
public string MyProperty
{
get{return _myProperty;}
}
我沒有實現類,但datagridview沒有綁定。我用我的代碼 – 2013-03-19 20:14:44
填寫它可以提供代碼來填充DataGrid嗎? – Dilshod 2013-03-19 20:17:35
這是一個很長的代碼。我真的沒有看到任何用它來發布它,所以這就是爲什麼我沒有把它包含在原來的帖子 – 2013-03-19 20:19:40
如果通過手工填寫在DataGridView的代碼,而不是將它綁定到數據源,那麼你可以一排的只讀屬性只需設置爲true,當你添加它。
如果上述方法不起作用,那麼我不明白你的代碼實際上做了什麼,就像@Dilshod說過,如果你發佈它,或者至少與它的要點(http://www.gist.github.com)聯繫起來會很方便。
這就是我所做的。我在創建行時設置了只讀屬性。但是在某些情況下,datagridview只能讀取(全部),但是某些用戶有能力將其重新設置爲readonly = false,並且當他們這樣做時,整個網格變爲readonly = false,即使是未被編輯爲可編輯的行在所有 – 2013-03-20 11:14:48
- 1. 只讀的DataGridView和IEditableObject
- 2. C#的BindingList只讀錯誤
- 3. datagridview databinding變爲只讀
- 4. 如何排序只讀datagridview
- 5. JSHint提供'只讀'錯誤$
- 6. deleterow()只讀語句錯誤
- 7. C++錯誤:只讀變量
- 8. DataGridView中的某些列是隻讀的
- 9. 的DataGridView RowValidation錯誤
- 10. CAST DataGridView錯誤
- 11. DataGridView有錯誤?
- 12. DataGridView類 - 錯誤()
- 13. 只讀文本字段中的錯誤
- 14. Mysql錯誤1036表是隻讀的
- 15. 有錯誤的痛苦與只讀
- 16. 在vb.net DataGridView中只讀單元格
- 17. 在DataGridView中只讀列和行
- 18. 在DataGridView中創建一列只讀
- 19. Datagridview排序錯誤
- 20. DataBinding錯誤-DataGridView Winforms
- 21. DataGridView刪除錯誤
- 22. DataGridView繪製錯誤
- 23. TXT到datagridview的錯誤
- 24. 是DataGridView錯誤的選擇?
- 25. DatagridView選定的行錯誤
- 26. SQL Server數據庫是隻讀錯誤
- 27. 設置只讀域(這是錯誤?)
- 28. 顯示錯誤「數據庫只讀」
- 29. MySQL錯誤1036:表是隻讀
- 30. Android只讀文件系統錯誤
= true?......... – Sayse 2013-03-19 19:51:52
是啊......對不起,我的意思是將readonly = false的單元格設置爲readonly = false,而readonly = true則爲readonly = true。我很抱歉不清楚 – 2013-03-19 19:55:19