listBox1_SelectedIndexChanged

listBox1_SelectedIndexChanged

我想做的是,当一个项目在 listBox1 中被 select 编辑时,listBox2 将填充来自 select 的选项。例如,如果您在 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");
    }
}

}

根据 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

给定的代码运行良好 据我所知,问题出在事件中,你一定是复制了代码,忘记了将事件添加到列表中 box.You 甚至可以通过属性添加到列表框