我有一个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