我正在开发一种软​​件,用户可以使用datagridview创建发票。
我有一些文本框单元格和一些组合框单元格。
我想做一些事情:


我要填充组合框单元格
从数据库表。我尝试了这个:

DataTable tblItems = UtilityClass.GetDataTable("SELECT ItemName,ItemID FROM Items"); DataGridViewComboBoxColumn itemCol=DataGridViewComboBoxColumn)dataGridViewNewBill.Columns["ColItem"]; itemCol.DataSource = tblItems; itemCol.DisplayMember = "ItemName"; itemCol.ValueMember = "ItemID";

但是,选择一个项目后,
当焦点移到
不同的单元格,在
组合框(或文本框的文本)
细胞消失。
编辑:似乎
如果在组合框中选择一个项目
导致所有组合框单元格
该价值,因为他们有
相同的数据源!但是即使
情况为何,为什么combox / textbox
焦点集中后,细胞失去了价值
移动到另一个单元格。

最佳答案

您是否正在处理正在擦除数据的任何特定事件。

选择一个值会导致将其选择为其他单元格,因为网格在组合框列的所有单元格上使用一个公共的ComboBox,这是一个EditingControl,用于选择该列的值。

您可以通过处理EditingControlShowing事件来控制行为

尝试设置此模式

dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;

关于c# - DataGridView Winforms填充ComboBoxCell,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5850221/

10-10 21:36