明天要答辩了,老师说我这个不行
他说太慢了,窗体狂闪,我就是用的那些事件啊我的做法是鼠标在窗体上按下并拖动的时候,同时就用那些事件去移动窗体,但是闪得厉害啊,有没有什么解决办法啊?急啊~~
现在先去吃饭,回来希望就有某位大侠给我帮助了,搞定的话我请他吃饭~~~

解决方案 »

  1.   

    狂闪??1. 使用this.SuspendLayout();//开始拖this.ResumeLayout();//拖完了
    在拖动的时候不要去绘制窗体就是了2. 使用
    WndProc直接像C++那样操作消息循环
      

  2.   

    protected override void WndProc(ref Message m)
            {
                const int WM_NCHITTEST = 0x84;
                const int HTCLIENT = 0x01;
                const int HTCAPTION = 0x02;            if (m.Msg == WM_NCHITTEST)
                {
                    this.DefWndProc(ref m);
                    if (m.Result.ToInt32() == HTCLIENT)
                        m.Result = new IntPtr(HTCAPTION);
                    else
                        base.WndProc(ref m);
                }
                else
                    base.WndProc(ref m);
            }环境VS.NET 2005 + WindowsXP SP2
    lz自己试试看吧
      

  3.   

    参考一下这个看看:
    http://blog.csdn.net/icoolno1/archive/2006/04/06/652637.aspx
      

  4.   

    东西总算搞完了特别感谢Reeezak(坚持信念),你的方法太简单了,代码几乎都不用改了,太爽了