在透明表单中设置表单的不透明度

时间:2013-11-01 12:34:11

标签: c# windows winforms win32gui

我有这样的场景,其中BaseForm需要是透明的,并且在其内部有1/4高度的面板,并且应该是不透明的(其中有一些按钮和文本框)。所以我为BaseFrom设置了BackColor的透明键,对于面板我设置了其他颜色。

对于该区域的其余部分,我需要它是透明的但是捕获相同的事件,所以我使用另一种形式(EventForm)这样做,不透明度设置为1%。但是在将EventForm作为子元素添加到BaseForm时,不透明度值被父窗体(BaseForm)覆盖,它是不透明的,我看到一个灰色区域。我无法更改基本表单的不透明度,因为它也会影响顶部面板。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我发现有很多BackColors设置可以使您的表单透明且仍可点击,这非常有趣。其中一种颜色是Red,所以你可以试试这个:

public Form1(){
   InitializeComponent();
   BackColor = Color.Red;
   TransparencyKey = BackColor;
}

如果您有其他具有红色的UI控件,您可以尝试其他颜色(正如我所说,有许多颜色以​​相同的方式工作)。关键是我不知道为什么它会这样工作,只是尝试它的工作原理。令人难以置信,因为据我所知,Opacity = 0表示click through