使放置在同一位置的组框的可见性消失-C#
我有一个windows窗体,在同一位置有三个分组框 在选择不同的选项时,我只想使其中一个可见,其余的不可见 默认情况下,所有对象都是不可见的 这是一段代码。我只看到在选择D1时groupBox1可见,在选择D2和D3时groupBox1消失,但groupBox2和GroupBox3从未出现使放置在同一位置的组框的可见性消失-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
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键并单击),然后使用设计栏上的按钮将它们对齐