我有一个combobox说combobox1。我有4件物品。每当我选择一个项目时,我希望在标签文本上的combobox1中获得所选文本。 我试着用下面的代码来做这个,但它不起作用。从组合框提取项目到标签文本
cnt是指combobox1中的项目数。磅是标签的一个对象。
请帮助..
for (int i = 1; i <= cnt; i++)
{
lb.Text = comboBox1.Items[i].ToString();
}
我有一个combobox说combobox1。我有4件物品。每当我选择一个项目时,我希望在标签文本上的combobox1中获得所选文本。 我试着用下面的代码来做这个,但它不起作用。从组合框提取项目到标签文本
cnt是指combobox1中的项目数。磅是标签的一个对象。
请帮助..
for (int i = 1; i <= cnt; i++)
{
lb.Text = comboBox1.Items[i].ToString();
}
多东西是你的代码错误:
0
开始,而不是在1
。Debug.Print
(System.Diagnostics
名称空间)来查看组合框项目的所有值。SelectedIndexChanged
事件:http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.selectedindexchanged.aspxToString()
的对象类型。否则,根本没有任何东西会显示在你的组合框中。lb.Text = comboBox1.Items[comboBox1.Items.Count].ToString();
。这将导致一个IndexOutOfRangeException
:http://msdn.microsoft.com/en-us/library/system.indexoutofrangeexception.aspx怎么样
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
lb.Text = comboBox1.Text;
}
不,它不起作用。它会返回system.data ... – user 2013-03-12 07:35:53
'.Text'的工作原理,请尝试:) – Pyromancer 2013-03-12 07:37:07
它在标签文本中显示System.Data.Data – user 2013-03-12 07:49:22
试试下面的代码:
for (int i = 0; i < cmbTest.items.count; i++)
{
label1.text = cmbTest.SelectedItem[i].toString();
}
//Or
label1.text = cmbTest.Text;
//Or
label1.text = cmbTest.selectedValue;
将值重新分配给for循环中标签的Text属性,而不使用先前分配的值为疯狂。你可以使用'label1.text = cmbTest.SelectedItem [cmbTest.items.count-1] .toString();'而不是使用相同的结果,并减少CPU使用率。 – 2013-03-12 08:04:00
感谢Mike提供宝贵的信息。 – Freelancer 2013-03-12 08:06:03
'不起作用'从来不是一个好的解释,你是否得到任何错误,或者你的输出不是预期的。 – Habib 2013-03-12 07:37:01
它也取决于你放入什么对象。作为列表框中的项目的对象应该有一个'ToString()'方法。但是如果底层对象类型没有实现'ToString()',那么你就不会在组合框中看到任何文本。但是为什么你要在label.text中循环并赋值(覆盖以前的值)呢?这根本没有意义。 – 2013-03-12 07:37:28
@Habib:输出不是我所期望的。没有错误。但它不会返回任何标签文字 – user 2013-03-12 07:38:14