我有一個DataGridView只讀模式設置爲true(不可編輯),它從表單加載數據庫中的值。當我將只讀模式設置爲false(可編輯模式)時,我想要一個特定的列(例如Department)作爲ComboBox顯示,這樣我就可以從那裏選擇值。當我進入只讀模式時,ComboBox應該消失,並且DataGridView應該正常顯示。如何實現它?我正在使用C#框架4.0,Winforms組合框在編輯模式的DatagridView
回答
請參閱ComboBox with read only behavior的實施。
您還可以根據DataGridView
屬性的只讀屬性更改的時間更改DisplayStyle
。將DisplayStyle
設置爲DataGridViewComboBoxDisplayStyle.Nothing
將隱藏下拉按鈕。
例如,改變ReadOnly
屬性通過單擊按鈕會是這個樣子:
private void mChangeReadOnlyButton_Click(object sender, EventArgs e)
{
ComboBoxColumn2.DisplayStyle = (dataGridView1.ReadOnly) ?
DataGridViewComboBoxDisplayStyle.ComboBox :
DataGridViewComboBoxDisplayStyle.Nothing;
dataGridView1.ReadOnly = !dataGridView1.ReadOnly;
}
編輯:
Editable http://i51.tinypic.com/5e7o1w.jpg
只讀:
我得到了我的解決方案其實,但真的很抱歉,我錯誤地刪除了它。我現在就放棄它了。爲麻煩抱歉。但在我的解決方案中,我面臨的問題是,當我的rowindex和columnindex是相同的。你的解決方案適合我。謝謝。 – Sandy
我得到了我的問題的解決方案,只是想到這裏發佈它。進入編輯模式時,運行以下代碼可能會解決問題。
public void bgCombo(DataGridView dg)
{
foreach (DataGridViewRow row in dg.Rows)
{
DataGridViewComboBoxCell dgc = new DataGridViewComboBoxCell();
dgc.Value = row.Cells["Department"].Value;
row.Cells["Department"] = dgc;
}
}
在將dgc設置爲dataGridCell之前,我們可以在其中添加項目集合。希望能幫助到你。
問題:如果列和行索引在編輯時變得相同,則出現錯誤 - 操作無效,因爲它會導致對SetCurrentCellAddressCore函數的重入調用。
我很喜歡這篇文章,我在網上發現的所有東西都是囉嗦和困惑,並不是我真正想要的東西。LIFE SAVER !! :) –
我很高興能有這樣的評論:) – Sandy
如果你想隱藏選定行的下拉框,你可以使用DataGridViewComboBoxDisplayStyle財產
的選項組合框,DropdownBox或無
在這個例子 - 只要有一個值顯示在第4列組合框第2列
For Each row As DataGridViewRow In dgv.Rows
Dim Cell As DataGridViewComboBoxCell = CType(row.Cells(4), DataGridViewComboBoxCell)
Cell.ReadOnly = True
Cell.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing
If row.Cells(2).Value IsNot Nothing Then
Cell.ReadOnly = False
Cell.DisplayStyle = DataGridViewComboBoxDisplayStyle.ComboBox
End If
Next
- 1. 編輯組合框
- 2. 可編輯的組合框
- 3. DataGridView組合框
- 4. DataGridView組合框
- 5. DataGridView C#編輯模式值編輯後的格式
- 6. 編輯C中Datagridview中的組合框項目#
- 7. WPF可編輯組合框樣式
- 8. 2組合框在datagridview的
- 9. C#的DataGridView編輯模式和DELETEKEY
- 10. 的DataGridView不進入編輯模式
- 11. Datagridview組合框沒有選擇點擊/編輯
- 12. Silverlight可編輯組合框
- 13. WPF可編輯組合框
- 14. Flex可編輯組合框
- 15. 追加DataGridView自動編輯模式
- 16. dataGridView與組合框
- 17. 以未綁定模式以編程方式填充DataGridView組合框?
- 18. Datagridview虛擬模型組合框
- 19. 如何把在datagridview的組合框編程迭代集合
- 20. XAF集合編輯模式
- 21. datagridview中的組合框
- 22. DataGridView中的組合框
- 23. datagridview中的c#組合框
- 24. 如何以編程方式擴展datagridview組合框單元格?
- 25. 可編輯的組合框綁定
- 26. 可編輯的選擇/組合框
- 27. 可編輯的組合框綁定
- 28. JavaFx:組合框編輯器的文本
- 29. 編輯組合框的Javascript和HTML
- 30. WPF:可編輯的組合框,下降?
你是什麼意思的'消失'?你想要隱藏整個列,或者只是要禁用組合框(即用戶無法從組合框中選擇下拉列表? – SwDevMan81
我的意思是,datagridview處於其正常模式並且組合框是小圖標,但不是列 – Sandy