2

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

干杯格兰特

4

2 回答 2

5

不确定我所说的是否适用于你正在做的事情。今天我试图用我的窗口形式的面板做类似的事情。我有两个面板,我想根据数据绑定控件切换它们的可见性。PanelX 可见,而 PanelY 不可见。好吧,我遇到了一个问题...... PanelX 将是可见的,而 PanelY 将是不可见的。但是,如果我将表单输入更改为 PanelY 应该可见而 PanelX 应该不可见的地方,它们都是不可见的。无论我做什么,我都无法让 PanelY 可见。

那么解决方案就是这样。我已将 PanelY 放在 PanelX 中(当然没有意识到我做了)。我想要的是 PanelX 和 PanelY 都在主窗体容器上。但就像我说的,PanelY 在 PanelX 的容器内......所以当 PanelX 不可见并且 PanelY 应该可见时,PanelY 也是不可见的,因为它的容器(PanelX)是不可见的。

长话短说,确保您的面板放在正确的容器中。

于 2010-07-30T21:57:30.893 回答
1

如果这是 WinForms,则根本没有 Z-Order 的概念。每个面板都会要求父窗体绘制它的背景。出于这个原因,WinForms 的透明度很少像您期望的那样工作。

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

于 2009-08-04T21:34:08.490 回答