我正在制作一个软件,用户将使用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";
但是,选择一个项目后,和
焦点移动到a时
不同的单元格,选中的项目
组合框(或文本框的文本)
细胞消失。
编辑:似乎如此
如果选择组合框中的项目
导致所有组合框细胞得到
那个价值,因为他们有
相同的数据源!但即使它是
这个案例,为什么是combox / textbox
细胞聚焦后细胞失去了它的价值
搬到另一个牢房。
答案 0 :(得分:1)
您是否正在处理正在删除数据的任何特定事件。
选择一个值会导致为其他单元格选择它,因为Grid在组合框列的所有单元格中使用了一个公共的 ComboBox ,它是 EditingControl ,用于选择列的值。
您可以通过处理 EditingControlShowing 事件来控制行为
尝试设置此模式
dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;
答案 1 :(得分:1)
好吧,我现在非常确定当我们为2个或更多个组合框使用相同的数据源时,更改1的值会导致其他组合也发生变化。
我所做的是禁用添加新行和
通过这种方式,每个单元格都有不同的数据源,但我必须做更多的工作,但它有效。