从组合框中取出项目以标记文本

时间:2013-03-12 07:32:40

标签: c#

我有一个组合框说组合框1。我有4件物品。每当我选择一个项目时,我希望在标签文本的combobox1中获取所选文本。 我尝试使用以下代码执行此操作,但它不起作用。

cnt指的是combobox1中的项目数。 lb是标签的对象。

请帮助..

for (int i = 1; i <= cnt; i++)
{
    lb.Text = comboBox1.Items[i].ToString();
}

3 个答案:

答案 0 :(得分:2)

怎么样

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            lb.Text = comboBox1.Text;
        }

答案 1 :(得分:1)

您的代码存在多处问题:

  1. 指数从零开始(至少在C#中)。这意味着你的for循环应该从0而不是1开始。
  2. 您在for循环中的每次迭代都会覆盖标签中的Text值,这没有意义。请改用Debug.PrintSystem.Diagnostics命名空间)来查看组合框项目的所有值。
  3. 您应该使用一个事件,当选择组合框中的项目时,标签的值会更新,请参阅此URL以获取组合框的事件列表:http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.aspx。在代码中将事件处理程序附加到事件或在Visual Studio的GUI设计器中执行。通常,您希望使用SelectedIndexChanged事件:http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.selectedindexchanged.aspx
  4. 确保组合框中的项目是实现ToString()的对象类型。否则你的组合框中什么也不显示。
  5. 您当前的for循环想要在for循环的最后一次迭代中执行lb.Text = comboBox1.Items[comboBox1.Items.Count].ToString();。这将产生IndexOutOfRangeExceptionhttp://msdn.microsoft.com/en-us/library/system.indexoutofrangeexception.aspx

答案 2 :(得分:0)

请尝试以下代码:

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;