小编Mr *_*Pie的帖子

通过透明的Windows窗体防止鼠标单击

在浮动侧边栏中切换"笔"按钮后,我正在制作一个用鼠标在屏幕上绘图的小工具.

我做了这个(请不要笑)通过最顶层的窗体形式及其背景,因为它的透明度键覆盖整个屏幕.当我处于绘图模式时,我需要让鼠标不要点击表单到下面的东西.我试过这样: Windows窗体的透明背景无法点击 如何禁用点击透明控件?

它成功地停止了鼠标,但也没有最大化窗体并用鼠标拖动它(使用HTCAPTION IntPtr(2)这是)我尝试使用MSDN上列出的一些其他值,但没有运气.

我离开了我的深度,任何帮助都非常感谢(请新手友好!)

PS我现在正在使用它..

        //code for allowing clicking through of menus
        protected override void WndProc(ref Message m)
        {              
            if (penMode && m.Msg == 0x84)
            {
                m.Result = new IntPtr(2);    
            }
            else
                base.WndProc(ref m);
        }
Run Code Online (Sandbox Code Playgroud)

更新:现在完全以另一种方式解决问题.它看起来不像WndProc会工作,所以我只是在整个屏幕上创建了一个空白表单,从中显示了我的主要表单(form.Show(this)).然后调整位于下方的空白表单的不透明度从0%到1%以允许/防止点击.作品!感谢所有的答案,教会了我很多.

c# winforms

7
推荐指数
1
解决办法
5206
查看次数

标签 统计

c# ×1

winforms ×1