卡住了datagridview和组合框列

时间:2009-11-02 05:03:32

标签: c# .net winforms datagridview

我有一个典型的要求。

我有一个带有组合框列的datagridview(在设计时加载的项目)。当用户从组合框中选择一个项目时,剩余的行会根据selectedItem在数据库中更新,并且dgv会刷新。

问题是组合框将丢失其当前选择并进入未选择状态。 我想在dgv刷新后保留所选项目。

任何人都可以帮我解决

提前致谢

3 个答案:

答案 0 :(得分:1)

你的意思是你使用的是未绑定的组合柱吗?如果是这样,则刷新数据源时无法自动保留该值。您需要在更新之前存储所选值,并在刷新后在代码中设置它。

如果您的列实际上是数据绑定,则所选值不会存储在数据库中,或者您遇到某些数据类型问题。

那里的组合框是让用户为字段选择一个值还是用它作为在记录上执行命令的方式?

您有可以发布的任何代码吗?

答案 1 :(得分:1)

Datagrid Combo-Box值将保留字符串值,但会自动刷新任何整数值。

以下是您需要做的事情:

- 填充Combo-Box值时,只需将其值转换为toString()。 - 如果您要设置默认选择值,也可以使用字符串类型设置它。

- 即使在刷新后,您的组合框也会自动保留所选的值。

:)

答案 2 :(得分:0)

在你的datagridview中有一个组合框。使用bindingsource为其赋值。 然后为datagridviews“EditingControlShowing”事件编写一个eventhandler。 其中,如果存在组合框Selectedindexchanged事件,则删除处理程序。然后为selectedIndexChanged事件添加一个事件处理程序,说“ComboBoxValueChanged”

在“ComboBoxValueChanged”中, DirectCast发件人到System.Windows.Forms.DataGridViewComboBoxEditingControl并获取它的选定值。 现在用它来计算你想要的任何值。

你可以参考这个 http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewcomboboxeditingcontrol.aspx