透明的 Windows 窗体能够处理点击事件

5
我在Visual Studio中使用C#编程,试图制作一个完全透明但不可穿透的透明窗体,而不是将标题栏也设置为透明,这样还可以有东西去移动(看不见的)窗口和关闭它。

如果窗口有可见的边框,那就更好了,但这可能是另一个问题。

1个回答

10

如果我理解您的问题正确,您可以使用 TransparencyKey

TransparencyKeyBackColor 属性都设置为相同的颜色,例如 Color.Red

以下是在 Visual Studio 上的透明窗体截图:

enter image description here

注意:

  • 当您使用例如 Color.Red 时,一切都正常工作,您可以处理鼠标 Click。但是对于不同的颜色,例如 Color.Magenta,窗体不能捕获鼠标 Click 的行为是不同的。

2
这两个设置都可以在您的表单属性下找到。 - Nebula
在我的系统上(Windows 10与VS Community 2015),我不需要this.Capture这部分。表单在中间是透明的,但默认情况下已经捕获了鼠标点击(我在表单的标题栏中更新了点击位置)。 - Idle_Mind
1
@Idle_Mind 当你使用例如 Color.Red 时,一切都正常工作,似乎也没有必要设置 Capture=true。不同颜色的行为是不同的,例如 Color.Magenta,窗体无法捕获鼠标单击。 - Reza Aghaei
这很奇怪。我猜肯定有一些潜在的问题,我需要深入挖掘一下... - linkhyrule5
1
@link https://dev59.com/k2855IYBdhLWcg3wQx5L - Cody Gray

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接