问题标签 [datagridviewcombobox]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1082 浏览

vb.net - dataGridViewCombobox 值未保存在导航器上保存按钮单击

这是一个使用 EF 的 VB.NET winforms 项目。ComboBox 绑定到一个单独的数据源,其中包含列 tName 和 tNumber。TName 是该值的简要描述,tNumber 是保存在财务表中名为 transaction_type 的列下的实际数字。在财务表中现有数据的显示上,一切都完美无缺。

网格中每个项目的组合框都显示了 transaction_type 的正确描述。但是,当我更改任何组合框的值并单击保存按钮时,它不会将任何值保存到 transaction_type。

任何想法为什么会这样?如果需要,我将添加任何缺少的代码..

form_load 事件如下所示:

而savebutton点击事件如下:

ComboBox 的属性如下所示:

组合框属性

应该注意的是,当单击保存按钮时,对数据网格的所有其他更改都会正确保存......经过进一步测试,如果不再选择 ComboBox,该值将实际保存。我想解决方法是在组合框的值更改后专注于其他事情。如果这似乎是最好的方法,我将如何挂钩 Datagridview 中组合框的 SelectedIndexChanged 事件???

0 投票
0 回答
574 浏览

c# - 在 Winform DataGridView 上填充 Combobox 列的向导

我正在使用 C# VS2010 Entity Framework sql Server。

我有一个非常(只读)简单的应用程序,可以按项目和学科显示和过滤工单。它使用 EF 来填充控件。使用向导,我将外键引用列“DisciplineID”(int) 更改为 ComboBox 列。当我使用向导更改它时,我使用学科表 (tblDiscipline) 的 EF 数据源填充该框,以简单地显示学科(管道、电气等)而不是整数外键。这是向导图像:

浏览工单应用

当我将 ProjectID 列保留为文本框控件时,它可以正常工作,显示整数 Discipline ID。当我如图所示进行更改时,我得到以下信息

“System.ArgumentException:DataGridViewComboBoxCell 值无效”

.

DisciplineID 可以为空。是这个问题吗?我该如何处理?或者是其他什么问题。这是一个生产数据库,因此参照完整性保证没有无效的密钥,尽管允许为空......

想法?

0 投票
1 回答
740 浏览

winforms - 未绑定的 Datagridviewcomboboxcolumn 值是否区分大小写?

datagridviewcomboboxcolumn在未绑定的datagridview中使用a时,我遇到了一个奇怪的问题。该列最初填充了有效值,其中一些全为大写,一些混合大小写,但始终是唯一的。例如,“AB”、“AC”、“AiDA”、“AltCurr”、“BE”等。

选择任何大写项目时,一切正常。但是,如果我从单元格的下拉列表中选择一个大小写混合的项目,则会发出“单元格包含无效数据”DataError 事件,并且单元格选择“AB”(即无法找到选择,因此默认为到第一个条目)。

如果我将所有列表项都更改为大写,则不会出现问题(但实际上这不是一个选项!)。

我已经阅读了大量关于 BOUND datagridview 组合列中区分大小写的评论,解决方案是更改底层数据表上的区分大小写选项,但没有什么可以克服我的特定未绑定问题。

有没有其他人遇到过这个问题,如果有,你是如何解决的?

编辑:按要求编写代码示例...

Datagridviewcombobox 列已经在设计器中创建(col #2)。它从对象集合中填充如下:

行是从基础数据表中手动添加的:

到目前为止一切正常 - DGV 正确显示,单元格组合中的值全部正确。不再需要代码。

现在,如果我单击任何这些行上的下拉菜单来更改主题,除非我选择“AiDA”或“AltCurr”项目(即混合大小写的项目),否则一切正常。dataerror 上下文是 Formatting | 展示。

如果我选择任何全部大写的列表项,则不会出现问题。在我看来,组合单元格在其 objectcollection 中没有找到混合大小写项目 - 底层组合对象集合的大小写敏感性与 DGV 用于检查集合内有效性的任何大小写敏感性存在差异。

0 投票
0 回答
269 浏览

c# - 如何让 DataGridView 绑定到现有 DataTable 以显示 DropDownList 列?

我正在尝试创建具有以下特征的 DataGridView: - 它的 DataSource 是我创建的一个 DataTable,其中包含几列。- DataGridView 中的一列显示我填充的 ​​DropDownList(它对应于我的 DataTable 中已有的列)。- 在 DropDownList 中选择的值填充 DataTable 中的基础列。

到目前为止,我能够通过将 DataGridView.AutoGenerateColumns 属性设置为 false,然后通过循环遍历 DataTable 中所有非 DropDownList 列的列并使用 DataGridViewComboBoxColumn(将该列的 DataSource 属性设置为我创建的列表)用于我想要作为 DropDownList 的列。

然而,这似乎既混乱又冗长(几乎不可能一概而论)。有没有更好的方法来达到同样的结果?

0 投票
1 回答
1770 浏览

vb.net - 动态地将组合框单元添加到 datagridview

我有一个动态填充的datagridview。我希望根据某些条件在某些列中填充组合框。

但是我的组合框单元被添加到最底部的行而不是正确的行

谁能告诉我需要做什么?

我哪里错了?

0 投票
8 回答
93247 浏览

c# - DataGridView 设置列单元格 Combobox

我在 Datagridview 中有这样的表:

我想从组合框中更改列“金钱”值

我试过这个但不知道进一步:

0 投票
1 回答
3580 浏览

vb.net - 如何在 vb.net 中将 datagridview 单元格样式从默认文本框更改为组合框?

我有一个从数据集中填充的 datagridview。

填充后,如果用户单击一行,最后一列应从文本框更改为组合框。

我正在使用 vb.net 2010。

在 Datagridview1 CellClick 事件上:

但这会导致错误:

如果情况不可行,我希望在从数据集中填充数据时,最后一列的类型为组合框。

提前致谢。

0 投票
0 回答
1057 浏览

vb.net - 在 Datagridviewcomboboxcell 中看不到下拉项

我创建了 Datagridviewcomboboxcells,如下所示,每个单元格有 2-3 个项目。我可以在组合框单元内看到具有适当值的 Datagridview 组合框单元,但是当我单击组合框单元时,我看不到下拉列表。

我应该编写一个单独的事件处理程序来显示下拉列表吗?它默认不下拉吗?

令人惊讶的是,该项目的另一个备份上的代码相同,但这是我现在无法使用的旧版本。关于导致下拉菜单不发生的原因,我无法重现该错误。

0 投票
1 回答
725 浏览

c# - 绑定到数据源的 DataGridViewComboBox 允许空条目

是否可以设置 DataGridViewComboBox 以允许用户在绑定到数据源(如 BindingList)时清除条目?

如果是这样,如何实现?

0 投票
0 回答
193 浏览

c# - DataGridViewComboBoxColumns 绑定和返回数据

我正在使用DataGridView其中一些DataGridViewComboBoxColumns列指向不同的数据视图。当我使用过滤的数据视图设置数据源时,一切看起来都很好,但有时当组合更改时,数据网格视图填充了不正确的值。只有当 Combo 的未过滤数据包含具有相同值的多行时,才会发生这种情况,这些行将分配给父 Datagridview 的 DisplayMember。

例如(简单示例)客户的数据网格:

CountryShipping town是基于国家和城镇表的数据视图外键的组合。显然, 的组合Shipping towns被过滤以仅显示相应国家/地区的组合。如果 table ofShipping towns包含 Torquay 的两个条目,一个在英格兰,一个在澳大利亚,当客户的国家是 England 时,会显示所有在Shipping TownsEngland 的条目,如果选择 Torquay,则返回给父 datagridview 的值是 Torquay 的键值在澳大利亚,即使组合的过滤数据视图甚至不包含该值。仅当用作 Combo 的显示成员的数据视图列包含重复值时,才会发生这种情况。