Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使放置在同一位置的组框的可见性消失-C#_C#_.net_Winforms_Groupbox - Fatal编程技术网

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

使放置在同一位置的组框的可见性消失-C#,c#,.net,winforms,groupbox,C#,.net,Winforms,Groupbox,我有一个windows窗体,在同一位置有三个分组框 在选择不同的选项时,我只想使其中一个可见,其余的不可见 默认情况下,所有对象都是不可见的 这是一段代码。我只看到在选择D1时groupBox1可见,在选择D2和D3时groupBox1消失,但groupBox2和GroupBox3从未出现 private void Form1_load(object sender,EventArgs e) { comboBoxCategory.Items.Add(&qu

我有一个windows窗体,在同一位置有三个分组框

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

默认情况下,所有对象都是不可见的

这是一段代码。我只看到在选择D1时groupBox1可见,在选择D2和D3时groupBox1消失,但groupBox2和GroupBox3从未出现

 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与所需的TabPages一起使用。否则,请检查组框是否不在另一个组框内,清除并向ComboxMovie添加项目后,必须将selectedIndex设置为0或。。。以便可以调用SelectedIndexChange事件。 提示:只需比较comboBoxMovie.SelectedItem.ToString()任何值,即可控制GroupBox的可见性,而不必使用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";
}

您在哪里调用groupbox.Visible?请指定您使用的UI框架(WPF、WinForms、Xamarin、UWP、ASP.NET等)@ziakhan更新了代码,而不是将3个groupbox放在彼此的顶部(这很容易出错),使用带有三个TabPages的
TabControl
,并隐藏选项卡标题。请参见和。是的,它工作正常,但是的,您是正确的,我认为我已将分组框彼此放在一起(拖动时),当我将其放置在不同的位置(不重叠)时,它工作正常。您知道一种方法来重叠GroupBox吗?您可以在运行时这样做,例如,如果您希望groupBox2和groupBox3位于groupBox1的位置,并且具有相同的维度:groupBox2.location=groupBox3.location=groupBox1.location;对.Width和.Height执行相同的操作。在设计时,只需选择groupBox1、groupBox2和groupBox3(按住ctrl键并单击),然后使用设计栏上的按钮将它们对齐