C# 切换组框可见性
我有两个分组框C# 切换组框可见性,c#,winforms,C#,Winforms,我有两个分组框grpMeter和grpTag。我必须在grpTag上放置grpMeter。。两者都需要相同的位置和大小 单击按钮时,我必须使它们交替可见。可能吗?我尝试了很多次,但只有一个组框可见。可能是因为重叠的问题。我试过使用面板,但同样的问题也出现了。有什么解决办法吗 public void ShowMeter() { grpMeter.Visible = true; grpTags.Visible = false; } public void ShowTag() {
grpMeter
和grpTag
。我必须在grpTag
上放置grpMeter
。。两者都需要相同的位置和大小
单击按钮时,我必须使它们交替可见。可能吗?我尝试了很多次,但只有一个组框可见。可能是因为重叠的问题。我试过使用面板,但同样的问题也出现了。有什么解决办法吗
public void ShowMeter()
{
grpMeter.Visible = true;
grpTags.Visible = false;
}
public void ShowTag()
{
grpTags.Visible = true;
grpMeter.Visible = false;
}
试试这个:
private void button_Click(object sender, EventArgs e)
{
grpMeter.Visible = !grpMeter.Visible;
grpTags.Visible = !grpTags.Visible;
}
在按钮单击事件中尝试此逻辑:
private void btn_Click(object sender, EventArgs e)
{
if (grpTags.Visible)
ShowMeter();
else
ShowTag();
}
我不确定,但你要找的似乎是什么。然后,您可以将分组框彼此相邻,定位将自动处理。这可以防止意外地将一个GroupBox放入另一个或移动位置。在设计时还提供了一种更方便的工作方式。将两个分组框相邻放置,以使它们不会重叠,然后查看它是否工作。如果成功,请不要使用鼠标移动“一组”框,而是仅选择它,然后在“属性”列表中手动设置坐标
这样可以防止一个分组框意外成为另一个分组框的子框。请参见下面的代码。单击按钮将切换可见性。同样重要的是,在构造函数中将一个GroupBox设置为可见,另一个设置为不可见
using System;
using System.Windows.Forms;
namespace TestForm
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//This is important. Set one of them to be Visible and the other one to be invisible
grpMeter.Visible = false;
grpTags.Visible = true;
}
private void button1_Click(object sender, EventArgs e)
{
grpMeter.Visible = !grpMeter.Visible;
grpTags.Visible = !grpTags.Visible;
}
}
}
一个好方法是使用
单选按钮
。取两个单选按钮并将其放在groupbox中
类似这样的方法会奏效:
private void rdMeter_CheckedChanged(Object sender, EventArgs e)
{
grpMeter.Visible = rdMeter.Checked;
grpTag.Visible = !rdMeter.Checked;
}
private void rdTag_CheckedChanged(Object sender, EventArgs e)
{
grpTag.Visible = rdTag.Checked;
grpMeter.Visible = !rdTag.Checked;
}
您是否已将这两个控件都添加到父容器中?不是WPF,是的,同一容器中的两个组框是否一个组框是另一个的子组框?可能是。。如何解决此问题?剪切未显示的groupbox,单击其假定的容器,然后再次粘贴。试试看。。。如果它能工作,你可以改变它的
位置
属性。他希望处理可见性而不是布局。我明白了,但对于相同的要求,我通常更喜欢使用flowlayoutpanel。我只是使分组框具有相同的大小,然后显示/隐藏。我不必担心定位问题。好的,我试试看。。它的工作方式是这样的,它们不会重叠。现在,如果要更改属性,您还可以使用箭头键将分组框移动到正确的位置。这是事实,但您只需复制和粘贴另一个分组框的位置/大小,可能会更快。这里的教训是:永远不要使用鼠标重叠两个容器控件!)