带有可见可点击控件的透明表单

Transparent Form with Visible Clickable Controls in it

我正在尝试在 win8 和 winforms 中制作鼠标透明窗体,其中包含可点击的控件。

我可以使用此代码使表单鼠标透明

int initialStyle = GetWindowLong(this.Handle, -20);
SetWindowLong(this.Handle, -20, initialStyle | 0x80000 | 0x20);

(在 win8 上,WndProc 方法不起作用)

但是当我把窗体设为鼠标透明时,这个窗体中包含的控件也是鼠标透明的

我能做什么?

您可以创建一个表单并将 BackColorTransparencyKey 属性都设置为 Color.Magenta

截图:

点击通过window到达后面,但是你点击按钮1,按钮会被点击

注: 该技巧适用于某些颜色,例如,如果您使用 Color.Red,它将是透明的,但可以处理点击,但使用洋红色,表单也将是鼠标透明的。