使用.NET中的两个下拉菜单来操作第三个下拉列表

时间:2014-08-08 15:31:51

标签: c# .net

我使用C#在.NET中编程,我有3个下拉菜单。根据前两个下拉列表的内容确定第3个值。用户无法更改第3个,它会自动填充。让我们调用这些下拉列表A. B和C.如果A选择了任何值,C将自动获得值X.如果A为空并且B选择了任何值,则C得到Y值。现在如果A被选中,则B被选中,C应该具有值X.因此,如果A有任何值,它将取代B中的值。你怎么做到这一点?我已经编写了一些事件但是我不知道如何制作它所以B需要在确定C的值之前检查A的签入内容。希望这听起来并不太混乱。

1 个答案:

答案 0 :(得分:1)

我将假设这是针对WinForms的,因为你没有指定。你应该做的是使用SelectedIndexChanged事件来进行组合框。每当用户从comboBox3comboBox1中选择内容时,请清除comboBox2

this.comboBox1.SelectedIndexChanged += new EventHandler(this.comboBox1_SelectedIndexChanged);

this.comboBox2.SelectedIndexChanged += new EventHandler(this.comboBox2_SelectedIndexChanged);

// ...

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    // Choosing an item in comboBox1 will always replace the items in comboBox3
    this.comboBox3.Items.Clear();
    this.comboBox3.Items.Add(X);
}

private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
{
    // Only fill comboBox3 if the user hasn't chosen an item in comboBox1
    if (this.comboBox1.SelectedItem == null)
    {
        this.comboBox3.Items.Clear();
        this.comboBox3.Items.Add(Y);
    }
}
  1. 当用户选择来自comboBox1comboBox2没有选择值的内容时,comboBox3将包含X
  2. 当用户选择来自comboBox2comboBox1没有选择值的内容时,comboBox3将包含Y
  3. 当用户从comboBox1中选择某个内容并且用户从comboBox2中选择了某些内容时,comboBox3将包含X
  4. 当用户从comboBox2中选择某个内容并且用户从comboBox1中选择了某些内容时,comboBox3将包含X