C# WinForm:每个窗体都有个Icon属性,现在我需要Icon,并且将窗体的ShowIcon=true;然后Icon设置了自己的图标,你发现没有:================================每个windows窗体,只要它的ShowIcon==true,
当你用鼠标单击窗体左上角的图标时,会出来个系统菜单,里面有最大、小化、关闭什么的;
当你用鼠标双击窗体左上角的图标后,窗体会立即关闭。请问C#如何消除这一现象,就是让单击或双击Icon时,无任何反映。谢谢

解决方案 »

  1.   

    导入using System.Runtime.InteropServices;命名空间,并将以下代码加到form中//禁用双击窗体图标关闭窗体
            [DllImport("user32.dll")]
            private static extern IntPtr GetSystemMenu(IntPtr hWnd, bool bRevert);
            protected override void WndProc(ref   Message m)
            {
                if (m.Msg == 0x112)
                {
                    if (m.WParam.ToInt32() == 61539 || m.WParam.ToInt32() == 61587)
                    {
                        Console.WriteLine(m.WParam);
                        return;
                    }
                }
                base.WndProc(ref   m);
            } 
      

  2.   

    Console.WriteLine(m.WParam);
    =======================
    这是在干吗?
      

  3.   

    建议不要打破常规的好
    不爽可以不要 title bar, 自己客制化窗口非客户区行为,
    既然使用了 window manager 的边框, 
    就不要破坏用户的操作习惯的好.
      

  4.   

    呆要在窗体中加这个就行了,屏蔽窗体的消息protected override void WndProc(ref   Message m)
            {
                if (m.Msg == 0x112)
                {
                    if (m.WParam.ToInt32() == 61539 || m.WParam.ToInt32() == 61587)
                    {
                        return;
                    }
                }
                base.WndProc(ref   m);
            } 
      

  5.   

    在Console里用Console.WriteLine()是写到控制台界面上;
    在WinForm里,你Console.WriteLine()是写到哪里去的啊?
      

  6.   

    WinForm里,你Console.WriteLine()。写到VS的“输出”里面
      

  7.   

    你们的API怎么知道的那么多啊?我就是知道的很少再问个:双击标题栏的Message m是多少啊?
      

  8.   

    我要让双击Icon和双击标题栏一样的效果
      

  9.   

    可以不用WindowState去判断么?直接用Message去处理
      

  10.   


    WinProc的重载函数都给你了
    你自己去捕捉吧。
    记得写文件哦