-1

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

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

请帮忙..

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

3 回答 3

2

怎么样

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            lb.Text = comboBox1.Text;
        }
于 2013-03-12T07:34:23.080 回答
1

您的代码有多个问题:

  1. 索引是从零开始的(至少在 C# 中是这样)。这意味着您的 for 循环应该0从而不是在1.
  2. 您在 for 循环中的每次迭代都会覆盖标签中的 Text 值,这是没有意义的。改用Debug.Print( System.Diagnosticsnamespace) 来查看组合框项的所有值。
  3. You should make use of an event that when a item in the combobox is selected, the value of the label is updated, see this url for a list of events for the combobox: 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();的最后一次迭代中执行。这将导致:http IndexOutOfRangeException: //msdn.microsoft.com/en-us/library/system.indexoutofrangeexception.aspx
于 2013-03-12T07:50:47.730 回答
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;
于 2013-03-12T07:35:21.223 回答