如果 datagridviewcombobox 的值不在 datagridviewcomboboxcolumn 数据源中,我该怎么办?
Posted
技术标签:
【中文标题】如果 datagridviewcombobox 的值不在 datagridviewcomboboxcolumn 数据源中,我该怎么办?【英文标题】:What do I do If the value of a datagridviewcombobox is not in the datagridviewcomboboxcolumn datasource? 【发布时间】:2011-01-29 04:46:28 【问题描述】:我遇到了下拉列表必须只包含“活动”对象的情况。但是,这并不意味着当前组合框值将在列表中(它是在该对象处于活动状态时被选中,但不再处于活动状态)。
按照现在的情况,抛出了一个异常。我认为在 datagridview 的 dataerror 处理程序中,表示该值不在列表中。
我需要做的是找到一些在填充每个 datagridview 行时触发的事件,因此我可以检查组合框值是否在组合框数据源中......如果没有,我会添加它。这是我能看到的唯一解决方案。但问题是,我应该为此使用哪个事件处理程序?
最好,我希望能够概括此检查并将其放入从 datagridview 继承的类中。这样我就不用再担心这个问题了。
有什么想法吗?
艾萨克
【问题讨论】:
【参考方案1】:您可以尝试DataBindingComplete
事件。其他选项包括DataMemberChanged
和DataSourceChanged
。
如果不看一些代码,很难判断哪个事件最合适。
【讨论】:
不熟悉第一对是做什么的,我试试看。 我只是在数据源更改后检查了每个单元格,看看它是否是一个组合框单元格。如果是,我将它的值成员与数据源列表进行对比。如果里面没有,我加了。添加似乎发生在紧要关头..没有抛出任何数据错误。谢谢安娜! @IsaacB 您还可以通过首先确定哪些列是DataGridViewComboBoxColumn
并仅检查这些列中的单元格来消除许多单元格。
这是真的!我真是懒得把它们都检查一遍。以上是关于如果 datagridviewcombobox 的值不在 datagridviewcomboboxcolumn 数据源中,我该怎么办?的主要内容,如果未能解决你的问题,请参考以下文章
DataGridViewCombobox 列中的自动完成有啥奇怪的行为?
将 DataGridViewComboBox 默认设置为等于现有 DataGridView 列
在 DataGridViewComboBox 下拉列表中设置特定项目的颜色