C# WinForm Combobox 赋值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# WinForm Combobox 赋值相关的知识,希望对你有一定的参考价值。
combobox1.DataSource = Bll.Person.GetList("");//绑定的model实体对象
combobox1.DisplayMember = "Name";
combobox1.ValueMember = "Id";
界面上绑定完成后,现在有另一个人的id,要默认选中。不知道怎么样实现。
1、combobox没有.value属性。使用combobox1.value="123"的方法不要来。
2、使用遍历的方法不要来。
foreach (object o in combobox1.Items)
Model.Person s = o as Model.Person;
string id = s.id.ToString();
if (id=="123")
MessageBox.Show(s.name);//这个是成功的,但不想用遍历。难道非得用这样?
combobox1.SelectedItem=o;
break;
都说细节决定成败啊,纠结了这么久的一个问题终于搞定了。问题在引号。id是整型的。
SelectedValue="123";当然是找不到这项的。
但是
SelectedValue=123;运行正常了。
经过我的失败教训,
希望大家编程的同仁们不要再犯同样的错了哈
比如 要默认选中的人的ID是 aabbccd;
this.comboBox1.SelectedText = "aabbccdd";
我已经帮你测试过了。追问
答否所问。
追答就不能变换一下嘛?
this.comboBox1.SelectedText = this.comboBox1.Items[this.comboBox1.Items.IndexOf("123")].ToString();
兄弟辛苦了,虽然你绕了一圈。但还是在原点。indexOf()的参数的绑定上去的对象才可能,"123"是没法使用的。
参考技术B如图所示,假设有一个类为:
public class Info
public string Id get; set;
public string Name get; set;
那么在Form_load事件中加载数据:
private void Form1_Load(object sender, EventArgs e)
List<Info> InfoList = new List<Info>();
Info i = new Info();
i = new Info() Id = "0", Name = "(全部)" ;
InfoList.Add(i);
i = new Info();
i.Id = "1";
i.Name = "aa";
InfoList.Add(i);
i = new Info() Id = "2", Name = "bb" ;
InfoList.Add(i);
i = new Info() Id = "3", Name = "cc" ;
InfoList.Add(i);
this.comboBox1.DataSource = InfoList;
this.comboBox1.DisplayMember = "Name";
this.comboBox1.ValueMember = "Id";
在文本框中输入ID后,点击确定按钮
private void button1_Click(object sender, EventArgs e)
if (this.textBox1.Text.Trim() != String.Empty)
this.comboBox1.SelectedValue = this.textBox1.Text.Trim();
这样,你想谁的ID选中都形
用我做的这个小例子,如果你想在刚开始就选中想要选中的数据,就可以这样写:
在load事件中,先通过查询语句,得到a的Id,然后加上
this.combox1.SelectedValue = "2";
就行了
追问我刚开始也是像兄弟这样做的,但SelectedValue 永远为null,无法赋值,不知道问题出在哪里。
追答能否给你刚开始的代码我看看,不然很难想的得出来的
如果是在页面加载事件中写的话,必须先要给comobox的DataSource赋值,然后才能SelectedValue,更准确的说,在所有情况下,comobox的DataSource必须先赋值,然后才能操作,如果先SelectedValue后赋值,就是NULL
private void Form1_Load(object sender, EventArgs e)
combobox1.DataSource = Bll.Person.GetList("");//绑定的model实体对象
combobox1.DisplayMember = "Name";
combobox1.ValueMember = "Id";
private void Query_Click(object sender, EventArgs e)
//combobox1.SelectedText="123";不行
//combobox1.SelectedValue="123";不行
//combobox1.SelectedItem="123";不行
你是高手。混分也不要这样混啊。问题都不看清。
追答combox.selectitem.text=" id";你不就是绑定后要再加个默认值么。有酷似默认值不显示,只有个默认的id,combox.selectvalue=" id";你再试试,winform和web有点不一样,
第5个回答 2011-03-17 使用SelectedItem属性追问SelectedItem 只是model对象object类型。SelectedItem=“123”是不行的。
以上是关于C# WinForm Combobox 赋值的主要内容,如果未能解决你的问题,请参考以下文章
C# Winform的comboBox控件下拉框怎样做一个多选?请大神指教!麻烦您给出相应代码!