如何为winform中的列表控件Combobox,ListBox控件绑定数据

如何为winform中的列表控件Combobox,ListBox控件绑定数据,第1张

combobox.DataBindings.Add("要绑定控件的属性如下拉框的SelectedValue\Text", 数据源如dataset1, "导航路径如Table1.ListID")

但是,DataBindings只能绑定一个字段,而绑定多个字段时典型的如列表控件Combobox、ListBox控件,需要键值对,这时就需要指定DataSource(实现IList接口就行),然后指定ValueMember、DisplayMember 。

所以,如果是下拉列表,你只想绑定一个字段,用DataBindings可以,想绑定两个字段

用combobox.DataSource = 数据源

combobox.DisplayMember = 对应显示字段名

combobox.ValueMember = 对应存储字段名

object val = combobox.SelectedValue

string txt = combobox.Text

SelectedIndex、SelectedItem表示选中了哪项目,也可以设置combobox.SelectedIndex = 0 或

直接设置 combobox.SelectedValue = "一个已存在的值"或 combobox.Text = "一个已存在的文本"

如果是绑定的,一定要设置的是一个在绑定在已存在的项。

例如有一个部门表的DataTable,部门ID是一个字段,用于唯一标识一个部门ID,部门名称是另一个字段,用于唯一标识ID对应的部门名称

绑定如下:

this.ComboBox1.DataSource = 部门表 //只要实现了IList接口就可以

this.ComboBox1.DisplayMember="部门名称"//显示中文,方便用户选择 对应WebForm的DataTextField

this.ComboBox1.ValueMember="部门ID" //绑定与选择对应的另一个值

需要着重说明的时,如果你有一个类Item如有两个属性:A、B,同时你做了ItemCollection类用来表示多个Item,绑定时:

this.ComboBox1.DataSource = myItemCollection

this.ComboBox1.DisplayMember="A"

this.ComboBox1.ValueMember="B"

如果数据不是从数据库中读取出来,而是从集合中绑定。 本例中仅列出Dictionary这个类。

代码:

Dictionary<int, string>mydiction = new Dictionary<int, string>()

mydiction.Add(2, "张三")

this.listBox1.DataSource = new BindingSource(mydiction, null)

this.listBox1.DisplayMember = "Value"

this.listBox1.ValueMember = "Key"

你应该说的是winform中的下拉列表控件吧!

如果这些选项是固定的,可以直接在控件的属性面板中找到Items属性中去添加选项;

如果需要代码添加,就可以使用 控件名.Items.Add("选项") 的语句来添加;

如果是数据源中取出来的数据,可以使用数据绑定的方式添加;

控件名.DataSource=数据源 的语句来添加选项。

在form窗体中添加一个DataGridView控件,选中DataGridView控件,单击如图所示的小三角形,选中“Add Column”(添加列),在d出的对话框中的“Type”类型后选择“DataGridViewComboxColumn”即可

如果您想该列可编辑,可再次单击小三角形,然后选择“Edit Column”(编辑列),在d出的对话框中,将该数据列的DisplayStyle属性设为:ComoBox即可


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11768256.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存