问题描述
我有这个窗口窗体,其中三个组框位于同一位置。
在选择其他选项时,我只想使其中一个可见而其余不可见
这是代码段。我只看到选择D1 groupBox1可见,选择D2和D3时groupBox1消失了,而groupBox2和3却从未出现。
private void Form1_load(object sender,EventArgs e)
{
comboBoxCategory.Items.Add("A");
comboBoxCategory.Items.Add("B");
comboBoxCategory.Items.Add("C");
comboBoxCategory.Items.Add("D");
groupBox1.Visible = false;
groupBox2.Visible = false;
groupBox3.Visible = false;
}
private void comboBox1_SelectedindexChanged(object sender,EventArgs e)
{
comboBoxMovie.Items.Clear();
switch(comboBoxCategory.SelectedItem.ToString())
{
case "A":
this.comboBoxMovie.Items.Add("A1");
this.comboBoxMovie.Items.Add("A2");
this.comboBoxMovie.Items.Add("A3");
this.comboBoxMovie.Items.Add("A4");
break;
case "B":
this.comboBoxMovie.Items.Add("B1");
this.comboBoxMovie.Items.Add("B2");
this.comboBoxMovie.Items.Add("B3");
this.comboBoxMovie.Items.Add("B4");
break;
case "C":
this.comboBoxMovie.Items.Add("C1");
this.comboBoxMovie.Items.Add("C2");
this.comboBoxMovie.Items.Add("C3");
this.comboBoxMovie.Items.Add("C4");
break;
case "D":
this.comboBoxMovie.Items.Add("D1");
this.comboBoxMovie.Items.Add("D2");
this.comboBoxMovie.Items.Add("D3");
this.comboBoxMovie.Items.Add("D4");
break;
}
}
private void comboBox2_SelectedindexChanged(object sender,EventArgs e)
{
if(comboBoxMovie.SelectedItem.ToString() == "D1")
{
groupBox1.Visible = true;
groupBox2.Visible = false;
groupBox3.Visible = false;
}
if (comboBoxMovie.SelectedItem.ToString() == "D2")
{
groupBox1.Visible = false;
groupBox2.Visible = true;
groupBox3.Visible = false;
}
if (comboBoxMovie.SelectedItem.ToString() == "D3")
{
groupBox1.Visible = false;
groupBox2.Visible = false;
groupBox3.Visible = true;
}
}
解决方法
您可以将TabControl与所需的TabPage一起使用。否则,请检查组框是否相互之间不存在,然后清除并向comboBoxMovie添加项目,则必须设置selectedIndex = 0或...,以便可以调用SelectedIndexChange事件。 提示:您可以通过比较comboBoxMovie.SelectedItem.ToString()任何值来控制groupBoxes可见性,而不是使用3条if语句:
private void comboBox2_SelectedIndexChanged(object sender,EventArgs e)
{
groupBox1.Visible = comboBoxMovie.SelectedItem.ToString() == "D1";
groupBox2.Visible = comboBoxMovie.SelectedItem.ToString() == "D2";
groupBox3.Visible = comboBoxMovie.SelectedItem.ToString() == "D3";
}