【发布时间】:2012-03-23 12:42:01
【问题描述】:
哦,哇,这让我很烦。 使用c#、winforms、visual studio 2010 ulti。
这是我的代码:
private void CheckBoxBranch_CheckedChanged(object sender, EventArgs e)
{
if (CheckBoxBranch.Checked == true)
{
panelBranch.Visible = true;
//panelBranch.Parent = null;
//PanelBuyer.Parent = null;
//panelBranch.SendToBack();
//PanelBuyer.SendToBack();
PanelBuyer.Visible = false;
CheckBoxBuyer.Checked = false;
this.Refresh();
}
if (CheckBoxBranch.Checked == false)
{
panelBranch.Visible = false;
this.Refresh();
}
}
private void CheckBoxBuyer_CheckedChanged(object sender, EventArgs e)
{
if (CheckBoxBuyer.Checked == true)
{
panelBranch.Visible = false;
PanelBuyer.Visible = true;
CheckBoxBranch.Checked = false;
this.Refresh();
}
if (CheckBoxBuyer.Checked == false)
{
PanelBuyer.Visible = false;
this.Refresh();
}
}
现在这段代码可以正常工作,没有问题,只要面板不在彼此之上。发生这种情况时,panel-Buyer 工作正常,Panel-Branch 根本不会显示。
现在我认为这与分支面板成为买方面板的子面板有关,因此当我的逻辑为买方运行时,它也适用于分支。
我每次都可以像旋转一样变换位置,但这是很多额外的代码。
有没有办法解决这个头痛又短又甜又简单的一个班轮? (我希望)。
【问题讨论】:
-
我真的不明白你的问题是什么......
-
问题是当复选框设置为 true 时分支没有任何反应。但如果我为买家这样做,它会完美切换。当我表单上的两个面板不在彼此之上时,此代码可以正常工作。当在上面时,分支不工作但买方工作
-
请不要在标题前加上“C#”之类的前缀。这就是标签的用途。
-
奇怪我之前被联系过,因为我的标题不包含前缀。那是哪一个?
-
设计师无法判断您是打算重叠面板还是将一个面板放在另一个面板中。它猜测后者。烦恼还没有结束,如果不翻转它们的 Z 顺序,您仍然很难到达面板。更好的捕鼠器在这里:stackoverflow.com/questions/2798215/…
标签: c# panel parent-child