C# DataGridView里的DataGridViewComboBoxColumn的几个问题

cctv770 2014-09-23 03:40:39
VS2013,winform环境

问题描述:在窗口中有个DataGridView控件,上面有4列,都是DataGridViewTextBoxColumn的,窗体载入时,在DataGridView控件里插入了一个DataGridViewComboBoxColumn 列,并且绑定好了显示值和真实值,运行是没有问题的,可以获取到ComboBox列的真实值。
问题:如何才能获取ComboBox列的显示值呢?扩展问题是,如何才能获取单元格里的combobox控件呢?因为DataGridViewComboBox的应用有很多限制,能否获取这个控件,并转换成combobox控件呢?
...全文
3342 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
於黾 2014-09-24
  • 打赏
  • 举报
回复
你要想省事,用DataGridViewComboBoxCell,就保证不会太灵活 比如你想给每一行绑定不同的内容,就做不到
於黾 2014-09-24
  • 打赏
  • 举报
回复
因为DataGridViewComboBoxCell不是ComboBox 它还是一个单元格,只不过类型不同而已,就只有一个value,不像ComboBox有那么多属性
cctv770 2014-09-24
  • 打赏
  • 举报
回复
引用 7 楼 Z65443344 的回复:
我觉得你在数据库层面就需要重新设计 已经保存了值,有任何必要把显示的文字也保存进去? 值如何对应文字,不是应该建立码表,然后查询表的时候如果想显示成文字,建立个视图,用多表联合查询将值替换成文字就好了啊
说的不错,文字确实可以不必保存,我保存下来,只是为了以后读取的时候不用跨表了,这只是次要原因,其实主要原因是要根据combobox的选择做出一些提示。例如,“您选择的分转中心是3F”,这个时候就不好显示“3F"的id值了。 当然了,也可以在点击按钮后 根据ombobox的真实值在数据库里读取显示值,我现在就这么解决的,用着是没有问题。就是有点不甘心,感觉数据都已经显示到客户端了,为什么获取不到呢?
_小黑_ 2014-09-24
  • 打赏
  • 举报
回复
dgv添加combobox控件 给dgv添加cbo控件
於黾 2014-09-24
  • 打赏
  • 举报
回复
我觉得你在数据库层面就需要重新设计 已经保存了值,有任何必要把显示的文字也保存进去? 值如何对应文字,不是应该建立码表,然后查询表的时候如果想显示成文字,建立个视图,用多表联合查询将值替换成文字就好了啊
cctv770 2014-09-24
  • 打赏
  • 举报
回复
分不多,意思下了。
cctv770 2014-09-23
  • 打赏
  • 举报
回复
引用 1 楼 q309079549 的回复:
(dataGridView1.Rows[0].Cells[0] as ComboBox).Text 楼主可以试一下
编译无法通过,错误如下: 错误 1 无法通过引用转换、装箱转换、取消装箱转换、包装转换或 null 类型转换将类型“System.Windows.Forms.DataGridViewCell”转换为“System.Windows.Forms.ComboBox”
cctv770 2014-09-23
  • 打赏
  • 举报
回复
引用 3 楼 bdmh 的回复:
EditingControlShowing事件中,看看e.Control
在EditingControlShowing事件,的确可以捕获到combobox控件,不过我现在的问题是,表单填好之后,点按钮提交,combobox里的显示值和真实值都需要保存到数据库里去,这个时候我捕获不到combox控件了,而转换成DataGridViewComboBoxCell后,也还是拿不到显示值。 回复4楼的,绑定这块没有问题,不过还是谢谢你。
fenchane 2014-09-23
  • 打赏
  • 举报
回复
我不知道听懂你的意思没有。我试图回答一下。 申明一个DataTable tmptbl, 将combobox的值读入tmptbl中, 然后将其绑定至datagridview.datasource= tmptbl
bdmh 2014-09-23
  • 打赏
  • 举报
回复
EditingControlShowing事件中,看看e.Control
於黾 2014-09-23
  • 打赏
  • 举报
回复
应该是只能强制转换成DataGridViewComboBoxCell,不能转换成ComboBox
-------_------- 2014-09-23
  • 打赏
  • 举报
回复
(dataGridView1.Rows[0].Cells[0] as ComboBox).Text 楼主可以试一下

110,525

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧