我使用C#在.NET中编程,我有3个下拉菜单。根据前两个下拉列表的内容确定第3个值。用户无法更改第3个,它会自动填充。让我们调用这些下拉列表A. B和C.如果A选择了任何值,C将自动获得值X.如果A为空并且B选择了任何值,则C得到Y值。现在如果A被选中,则B被选中,C应该具有值X.因此,如果A有任何值,它将取代B中的值。你怎么做到这一点?我已经编写了一些事件但是我不知道如何制作它所以B需要在确定C的值之前检查A的签入内容。希望这听起来并不太混乱。
答案 0 :(得分:1)
我将假设这是针对WinForms的,因为你没有指定。你应该做的是使用SelectedIndexChanged
事件来进行组合框。每当用户从comboBox3
或comboBox1
中选择内容时,请清除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);
}
}
comboBox1
且comboBox2
没有选择值的内容时,comboBox3
将包含X comboBox2
且comboBox1
没有选择值的内容时,comboBox3
将包含Y comboBox1
中选择某个内容并且用户从comboBox2
中选择了某些内容时,comboBox3
将包含X comboBox2
中选择某个内容并且用户从comboBox1
中选择了某些内容时,comboBox3
将包含X