C#隐藏并在splitcontainer顶部显示一个面板

Sta*_*ker 3 c# panel winforms

我有一个屏幕,由几个拆分容器划分.其中一个包含我用户组件的矩形,这些"矩形"代表医院病床.我想要做的是让用户可以选择在"用户组件视图"和"数据网格视图"之间切换.

所以我创建了一个面板pnlPatients,我给出了与splitcontainer相同的大小和用户组件.当用户选择"更改视图"时,程序应该在两个布局之间切换.

代码:尝试1:

if (pnlPatients.Visible)
  pnlPatients.Hide();
else
{
  pnlPatients.Show();
  pnlPatients.BringToFront();
}
Run Code Online (Sandbox Code Playgroud)

尝试2:

pnlPatients.Visible = !pnlPatients.Visible;
pnlPatients.Invalidate();
Run Code Online (Sandbox Code Playgroud)

奇怪的是,两次尝试都是这样的:

用户首先看到"用户组件视图".如果他要切换视图,它将正确显示前一个视图顶部的面板.如果他再次切换,那么面板将被正确隐藏.如果他再次切换视图,那么面板将不会显示.请注意:在调试时,面板的visible属性会正确更改为TRUE或FALSE.但由于某些原因,只有第一次将其显示为TRUE才能看到面板.

有没有人有想法?

最好的祝福

编辑:我也试过这个,但没有成功:

pnlPatients.Visible = !pnlPatients.Visible;
if (pnlPatients.Visible)
{
  pnlPatients.BringToFront(); 
}
else
{
  pnlPatients.SendToBack();
}
Run Code Online (Sandbox Code Playgroud)

Ada*_*ler 5

万一有人不想涉及Tony的所有链接:

this.splitContainer.Panel2.Hide();
this.splitContainer.Panel2Collapsed = true;
Run Code Online (Sandbox Code Playgroud)