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

时间:2008-09-21 21:21:13

标签: c# visual-studio forms transparency

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

  
    

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

  

我的意思是桌面或Firefox,而不是我项目中的内容。

1 个答案:

答案 0 :(得分: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);
    }