如何在C#中创建一个完全透明的winform,它是交互式的?

Erm*_*mir 5 c# winforms

我正在尝试在C#中创建一个完全透明的表单,但不允许点击通过它到下面的其他窗口.我发现有两种方法很有希望,但没有达到我想要的效果.

第一种方法是将背景颜色和透明度键设置为相同的值.这给了我透明的表单,但点击进入.

this.BackColor = Color.Red;
this.TransparencyKey = Color.Red;
Run Code Online (Sandbox Code Playgroud)

我尝试的另一件事是将表单的不透明度设置为1%.这创造了我想要的效果 - 几乎.我得到一个99%透明的形式,但是对于窗体下面的任何东西都有轻微的颜色变化.由于我正在制作的应用程序旨在用于颜色敏感的上下文(图形设计等),即使是颜色的微小改变也是不可接受的.亲爱的,所以我转向你.可以这样做吗?

ale*_*lex 1

您可以尝试仅捕获系统范围内的鼠标操作(单击、移动)并根据需要进行处理,而不是尝试在透明表单上捕获鼠标操作。

  • 我已经找到了解决办法,也分享给大家。答案很简单:我设置:`this.TransparencyKey = Color.Lime;` 然后我使用 1x1px Lime PNG 作为背景图像。这还有一个额外的好处,即不会遮挡表单边框和标题栏。我稍后会删除它们,但目前,了解表单所在的位置很有用。 (2认同)