我有3个GroupBox,其中包含各种TextBox和Button,我将3个GroupBox彼此叠放,并创建了4个按钮,这样,当单击其中一个按钮时,所指的GroupBox就会显示在另一个按钮上方。为此,我尝试了.Visible和.BringToFront命令。但这没有用。
private void bunifuFlatButton1_Click(object sender, EventArgs e)
{
LOGINGROUP.Visible = true;
LOGINGROUP1.Visible = false;
LOGINGROUP2.Visible = false;
}
private void bunifuFlatButton2_Click(object sender, EventArgs e)
{
LOGINGROUP1.Visible = true;
LOGINGROUP.Visible=false;
LOGINGROUP2.Visible = false;
}
private void bunifuFlatButton3_Click(object sender, EventArgs e)
{
LOGINGROUP2.Visible = true;
LOGINGROUP1.Visible = false;
LOGINGROUP.Visible = false;
}
答案 0 :(得分:0)
您有不能使用TabControl控件的原因吗?
根据我对您的描述的理解,该按钮也位于组框内。如果它们都位于顶部,则只能单击顶部组框的按钮。
如果不是以上情况
此问题很可能是由于Visual Studio设计器中的组框的行为引起的。当将一个组框放置在设计器中的另一个框的顶部时,顶部框将自动放置在底部框中,这可以在设计器生成的以下代码中看到:
//
// groupBox1
//
this.groupBox1.Controls.Add(this.groupBox2);
this.groupBox1.Location = new System.Drawing.Point(13, 13);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(232, 227);
this.groupBox1.TabIndex = 0;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "groupBox1";
重点是这部分:
this.groupBox1.Controls.Add(this.groupBox2);
如您所见,groupBox2被放置为groupBox1的控件,这会导致发送到前端的问题,因为group中的唯一控件是它本身以及与之重叠的文本框。
要解决此问题,您只需更改
this.groupBoxX.Controls.Add(this.groupBoxY);
到
this.Controls.Add(this.groupBoxY);
或其他方式,只需自己声明组框即可,而不必依赖设计器。 (但是,这也需要手动声明文本框和处理程序)