点击C#表单

cae*_*say 6 c#

我创建了一个半透明的表单.我希望人们能够点击表单区域,并且表单不能处理点击.我希望表单下面的任何内容都能接收点击事件.

Joe*_*oey 5

您可以使用SetWindowLong

int initialStyle = GetWindowLong(this.Handle, -20);
SetWindowLong(this.Handle, -20, initialStyle | 0x80000 | 0x20);
Run Code Online (Sandbox Code Playgroud)

这里有一些魔术数字:

  • -20GWL_EXSTYLE

    检索扩展的窗口样式。

  • 0x80000WS_EX_LAYERED

    创建一个分层的窗口

  • 0x20WS_EX_TRANSPARENT

    指定在绘制窗口下方的兄弟姐妹(由同一线程创建)之前,不应绘制以此样式创建的窗口。该窗口显示为透明,因为基础同级窗口的位已被绘制。

网上有很多关于如何执行此操作的文章,例如this