单击Visual C#Window Forms的透明度?

Met*_*uru 14 c# forms transparency visual-studio

我制作了一个面板并将其设置为填满屏幕,现在我可以看到它下面的窗口,但我希望它能够点击,这意味着他们可以通过透明度单击文件或查看另一个对象的工具提示.

RE:这可能太明显了,但您是否尝试通过右键单击并选择"Send to Back"将面板发送到后面?

我的意思是像桌面或Firefox,而不是我的项目中的东西.

Phi*_*ght 21

创建透明的顶级表单非常容易.只需填充屏幕或所需区域,并将其定义为具有相同值的TransparenyKey颜色和BackColor.

让它忽略鼠标很简单,你只需要覆盖WndProc并告诉WM_HITTEST所有鼠标位置都被视为透明.从而使鼠标与窗口下面发生的任何事情进行交互.像这样......

    protected override void WndProc(ref Message m)
    {
        if (m.Msg == (int)WM_NCHITTEST)
            m.Result = (IntPtr)HTTRANSPARENT;
        else
            base.WndProc(ref m);
    }
Run Code Online (Sandbox Code Playgroud)

  • 该代码放在哪里?当我将它放在InitializeCoponets下时,它不起作用。我什至不打一次电话。 (2认同)