c# – 使用ComboBox作为表单中的索引 – 更新ComboBox选择更改的控件

这实际上是一个非常简单和基本的问题,如果这是一个重复的问题(肯定是必须的),我很抱歉,但我无法在任何地方找到一个直截了当的答案,我终于放弃了.

我在Visual Studio ’17中创建了一个Windows窗体应用程序,基于SQL服务器表创建了一个数据源,并添加了一个绑定的组合框.到现在为止还挺好.使用DataSource / DataSet面板中的拖放功能,我在文本框中填充了几个字段并绑定到数据.使用自动添加的数据绑定导航器,我可以滚动表格和控件全部更新,所以我知道它们都已正确绑定.

现在,我想要完成的是在组合框选定值更改时更新控件.但他们没有.从我读过的内容来看,我猜测组合框需要警告数据源当前记录需要更新吗?如果是这样,我如何让它更新为组合框中的键值?或者这可能完全错了?我希望VS能为绑定控件发挥其魔力,这样我就不必处理每个组合更改事件,查询数据库,然后更新每个控件.

我认为这将是一项简单的任务;鉴于它非常基础,肯定会有直接的解释,但讨论的问题要么更复杂,要么讨论数据绑定过程和对象的迷宫.这是我常用的.net和SQL编码的一个侧面冒险,所以我希望只需要一个或两个直接的事件处理程序.

最佳答案 当您想要设置像ComboBox或ListBox这样的列表控件作为数据的索引时:

>将其DataSource属性设置为与其他控件绑定的相同DataSource.
>将其DisplayMember设置为在组合框中显示,但不需要设置ValueMember.
>不要触摸(DataBindings).您不需要设置数据绑定.

假设您有一个productsBindingSource,这些是绑定控件的设置:

> idTextBox→数据绑定:绑定到productsBindingSource的Id属性的Text属性
> nameTextBox→数据绑定:绑定到productsBindingSource的Name属性的Name属性
> priceTextBox→Data Bindings:Price属性绑定到productsBindingSource的Price属性

然后让ComboBox充当索引,这些是ComboBox的设置:

> DataSource属性设置为productsBindingSource
> DisplayMember属性设置为Name
>不要触摸(DataBindings).您不需要设置数据绑定.

然后,当您从ComboBox中选择一个项目时,绑定控件将显示所选项目,绑定导航器也将移动:

《c# – 使用ComboBox作为表单中的索引 – 更新ComboBox选择更改的控件》

点赞