Winforms 面板可见性问题
有3个面板pnlPanel0、pnlPanel1、pnlPanel2具有相同的大小和位置 使用“左”或“右”按钮,我需要更改每个面板的可见性 使用pnlPanel0(包含标签)和pnlPanel2(包含按钮)-确定 但对于pnlPanel1(包含ListView): curLayer==1:pnlPanel1之后。Visible=true; 带有ListView的面板仍然不可见 但是如果pnlPanel1没有与pnlPanel0和pnlPanel2相交-OK 为什么? 可能在这种情况下,“放在前面”/“放在后面”有问题吗 是否有其他安全且无问题的解决方案Winforms 面板可见性问题,winforms,compact-framework,layer,Winforms,Compact Framework,Layer,有3个面板pnlPanel0、pnlPanel1、pnlPanel2具有相同的大小和位置 使用“左”或“右”按钮,我需要更改每个面板的可见性 使用pnlPanel0(包含标签)和pnlPanel2(包含按钮)-确定 但对于pnlPanel1(包含ListView): curLayer==1:pnlPanel1之后。Visible=true; 带有ListView的面板仍然不可见 但是如果pnlPanel1没有与pnlPanel0和pnlPanel2相交-OK 为什么? 可能在这种情况下,“放在前
if (curLayer == 0)
{
pnlPanel0.Visible = true;
pnlPanel1.Visible = false;
pnlPanel2.Visible = false;
}
else if (curLayer == 1)
{
pnlPanel0.Visible = false;
pnlPanel1.Visible = true;
pnlPanel2.Visible = false;
}
else if (curLayer == 2)
{
pnlPanel0.Visible = false;
pnlPanel1.Visible = false;
pnlPanel2.Visible = true;
}
MessageBox.Show(Convert.ToString(pnlPanel1.Visible)); // always false
.NET CF 3.5/WinForms/VS 2008/WinCE可能的解决方案:
不带面板我有一个表单,上面有7个面板控件 在
Form\u Load
中,所有面板都设置为.Dock=DockStyle.Fill代码>
此外,所有面板共享相同的GotFocus
事件:
private void ActivePanel_GotFocus(object sender, EventArgs e) {
Panel pnl = sender as Panel;
if (pnl != null) {
pnl.BringToFront();
}
}
您是否需要对特定的面板执行某些操作?好的,然后看看这个版本:
private void ActivePanel_GotFocus(object sender, EventArgs e) {
Panel pnl = sender as Panel;
if (pnl != null) {
pnl.BringToFront();
if (pnl.Name == pnlPanel0.Name) {
// Do something with pnlPanel0
}
}
}
您确定没有将一个面板嵌套在另一个面板中吗?如果出现这种情况,当您将父面板设置为Visible=False时,嵌套面板也将不可见。可能重复“确定”,我尝试在没有面板的情况下解决问题。标签中的背景色存在一些问题