listBox1_SelectedIndexChanged

时间:2016-04-29 12:46:38

标签: c# listbox selecteditem

我想要做的是,当在listBox1中选择一个项目时,listBox2将填充选项以供选择。例如,如果您在listBox1中选择一件白衬衫,那么listBox2将填充可供选择的设计。我已经过了100次,从我读过的它应该可以工作但它根本不工作。唯一有效的是listBox1填充衬衫颜色。任何帮助都会受到极大的关注。

using System;
using System.Windows.Forms;
namespace EmmasEmbroidery
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        listBox1.Items.Add("White");
        listBox1.Items.Add("Black");
        listBox1.Items.Add("Red");
        listBox1.Items.Add("Blue");
    }


    private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        listBox1.Enabled = true;
        listBox2.Items.Clear();

        if (listBox1.SelectedItem.Equals("White"))
        {
            listBox2.Items.Add("Peacock");
            listBox2.Items.Add("Palm Tree");
            listBox2.Items.Add("Rose");
        }
        else if (listBox1.SelectedItem.Equals("Black"))
        {
            listBox2.Items.Add("Race Car");
            listBox2.Items.Add("Star");
            listBox2.Items.Add("Moon");
        }
        else if (listBox1.SelectedItem.Equals("Red"))
        {
            listBox2.Items.Add("Palm Tree");
            listBox2.Items.Add("Moon");
        }
        else if (listBox1.SelectedItem.Equals("Blue"))
        {
            listBox2.Items.Add("eacock");
            listBox2.Items.Add("Moon");
        }

        label3.Text = "You have selected a " + listBox1.SelectedItem.ToString() + " shift";
    }

    private void listBox2_SelectedIndexChanged(object sender, EventArgs e)
    {
        listBox2.Enabled = false;
        label3.Text = "You have selected a " + listBox1.SelectedItem.ToString() + " shift with a " + listBox2.SelectedItem.ToString() + " design.";
    }

    private void button1_Click_1(object sender, EventArgs e)
    {
        listBox1.Enabled = true;
        listBox2.Enabled = true;

        listBox1.Items.Clear();
        listBox2.Items.Clear();
        label3.Text = "";

        listBox1.Items.Add("White");
        listBox1.Items.Add("Black");
        listBox1.Items.Add("Red");
        listBox1.Items.Add("Blue");
    }
}

}

2 个答案:

答案 0 :(得分:1)

给定的代码工作得非常好 enter image description here  据我所知,问题出在事件中,你必须复制代码并忘记将事件添加到列表框中。你可以按属性添加到列表框

enter image description here

答案 1 :(得分:0)

使用MSDN

// Allow the ListBox to repaint and display the new items.
   listBox2.EndUpdate();

https://msdn.microsoft.com/pt-br/library/system.windows.forms.listbox.items(v=vs.90).aspx