使放置在同一位置的组Box的可见性消失-C#

问题描述

我有这个窗口窗体,其中三个组框位于同一位置。

在选择其他选项时,我只想使其中一个可见而其余不可见

认情况下,所有内容都是不可见的。

这是代码段。我只看到选择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;

            }
        }

enter image description here

解决方法

您可以将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";
}