C# WinForm Combobox 赋值

combobox1.DataSource=Bll.Person.GetList("");//绑定的model实体对象combobox1.DisplayMember="Na... 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;运行正常了。

经过我的失败教训,
希望大家编程的同仁们不要再犯同样的错了哈
展开
 我来答
moonwebmast
2011-03-17 · TA获得超过164个赞
知道小有建树答主
回答量:84
采纳率:0%
帮助的人:76.4万
展开全部
comboBox 的值不一定要在下拉列表中的。直接设置值就好了。
比如 要默认选中的人的ID是 aabbccd;
this.comboBox1.SelectedText = "aabbccdd";
我已经帮你测试过了。
更多追问追答
追问
答否所问。
追答
就不能变换一下嘛?
this.comboBox1.SelectedText = this.comboBox1.Items[this.comboBox1.Items.IndexOf("123")].ToString();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pinebamboo
推荐于2016-09-04 · TA获得超过142个赞
知道小有建树答主
回答量:152
采纳率:0%
帮助的人:106万
展开全部

如图所示,假设有一个类为:

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
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
TomasRen
2011-03-17 · TA获得超过173个赞
知道小有建树答主
回答量:175
采纳率:100%
帮助的人:155万
展开全部
关注
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yangxianbiao11
2011-03-17 · TA获得超过160个赞
知道答主
回答量:246
采纳率:0%
帮助的人:156万
展开全部
combox.insert("123");
追问
你是高手。混分也不要这样混啊。问题都不看清。
追答
combox.selectitem.text=" id";你不就是绑定后要再加个默认值么。有酷似默认值不显示,只有个默认的id,combox.selectvalue=" id";你再试试,winform和web有点不一样,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ustbhwg
2011-03-17 · TA获得超过503个赞
知道小有建树答主
回答量:189
采纳率:100%
帮助的人:66.1万
展开全部
使用SelectedItem属性
追问
SelectedItem 只是model对象object类型。SelectedItem=“123”是不行的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式