我正在开发一款软件,用户可以在其中使用数据 GridView 创建发票。 我有一些文本框单元格和一些组合框单元格。 我想做一些事情:
我想填充组合框单元格 从数据库表。我试过这个:
DataTable tblItems = UtilityClass.GetDataTable("SELECT ItemName,ItemID FROM Items"); DataGridViewComboBoxColumn itemCol=DataGridViewComboBoxColumn)dataGridViewNewBill.Columns["ColItem"]; itemCol.DataSource = tblItems; itemCol.DisplayMember = "元素名称"; itemCol.ValueMember = "ItemID";
但是,在选择了一个项目之后,并且 当焦点移动到 不同的单元格,在中选择的项目 组合框(或文本框的文本) 细胞消失。
编辑:似乎 如果在组合框中选择一个项目 导致所有组合框单元格得到 那个值,因为他们有 相同的数据源!但即使是 这种情况,为什么组合框/文本框 焦点是后单元格失去它的值(value) 移动到不同的单元格。
最佳答案
您是否正在处理任何正在删除数据的特定事件。
选择一个值会导致它被其他单元格选中,因为网格在组合框列的所有单元格中使用一个通用的 ComboBox,它是用于启用选择的 EditingControl列的值。
您可以通过处理EditingControlShowing 事件来控制行为
尝试设置此模式
dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;
关于c# - DataGridView Winforms 填充 ComboBoxCell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5850221/