我有两个组框grpMeter
和grpTag
。我必须将grpMeter
放在grpTag
上..两者都需要相同的位置和大小..
点击按钮,我必须交替显示它们。可能吗?我尝试了很多次,但只有一个组框变得可见。也许是因为重叠的问题。我尝试使用面板,但同样的问题出现了。有没有解决方案?
public void ShowMeter()
{
grpMeter.Visible = true;
grpTags.Visible = false;
}
public void ShowTag()
{
grpTags.Visible = true;
grpMeter.Visible = false;
}
答案 0 :(得分:12)
将两个组框彼此相邻放置,使它们不重叠,然后查看它是否有效。如果使其正常工作,不要使用鼠标移动一个组框,而只选择它,然后在“属性”列表中手动设置坐标。
这样,您可以防止一个组框意外地成为另一个组框的子组。
答案 1 :(得分:1)
在button_click事件中尝试此逻辑:
private void btn_Click(object sender, EventArgs e)
{
if (grpTags.Visible)
ShowMeter();
else
ShowTag();
}
答案 2 :(得分:0)
试试这个:
private void button_Click(object sender, EventArgs e)
{
grpMeter.Visible = !grpMeter.Visible;
grpTags.Visible = !grpTags.Visible;
}
答案 3 :(得分:0)
我不确定,但你要找的是FlowLayoutPanel。然后,您可以将组框彼此相邻放置,并自动处理定位。这可以防止意外地将一个GroupBox放入另一个或移动位置。还可以在设计时更轻松地工作。
答案 4 :(得分:0)
请参阅下面的代码。单击按钮将切换可见性。同样重要的是,您将其中一个组框设置为可见,另一个组框在构造函数中不可见
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;
}
}
}
答案 5 :(得分:0)
其中一个好方法是使用RadioButton
。拿两个单选按钮并将其放在一个组合框中。
这样的事情会起作用:
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;
}