C#中的重叠面板

时间:2009-08-01 20:56:33

标签: c# visual-studio user-interface transparency panel

我在c#中使用GUI表单构建器。我有一个TransparencyKey设置,整个表单的backGround颜色设置为透明度键,因此表单的背景似乎不可见。我还有一个登录面板,首先出现,用户登录后消失,其他面板变得可见。这一切都有效,除非我尝试重叠任何面板。发送回来或带到前面没有任何区别。如果即使其中一个面板重叠一点,这两个重叠的面板也会消失?可能有什么不对?

干杯 格兰特

2 个答案:

答案 0 :(得分:5)

不确定我所说的内容是否适用于您正在做的事情。我试图在Windows窗体中使用面板做类似的事情。我有两个面板,我想根据数据绑定控件切换它们的可见性。当PanelY不可见时,PanelX将可见。好吧,我遇到了一个问题...... PanelX会被看到,而且PanelY是隐形的。但是,如果我将表单输入更改为PanelY应该可见而PanelX应该是不可见的,那么它们都是不可见的。无论我做了什么,我都无法看到PanelY。

解决方案就是这样。我在PanelX中放置了PanelY(当然没有意识到我做了)。我想要的是PanelX和PanelY都在主表单容器上。但正如我所说,PanelY位于PanelX的容器中...所以当PanelX不可见且PanelY应该可见时,PanelY也是不可见的,因为它的容器(PanelX)是不可见的。

故事很长,请确保您的Panel位于适当的容器中。

答案 1 :(得分:1)

如果这是WinForms,那么Z-Order就没有任何概念。每个面板都会要求父表单绘制它的背景。出于这个原因,WinForms透明度很少像你期望的那样工作。

话虽如此,我不明白为什么如果有任何重叠,面板会完全消失。我过去实现了这种类型的东西,从未见过这种行为。你能在一个非常小的示例项目中重新创建它并发布代码吗?