日期:2014-05-18  浏览次数:20744 次

c# 控制窗体不能移动
我知道了一种办法不能让窗体移动,可是窗体显示的位置又改变了,怎么样才能更好的控制窗体不能移动呢,就是锁定窗体
先记录location,再在LocationChanged或move事件里把记录下的值再给location
private Point point;
private void Form1_Load(object sender, EventArgs e)
  {
point = this.Location;
  }
  private void Form1_Move(object sender, EventArgs e)
  {
  this.Location = point;
  }

这种方法不好啊,

------解决方案--------------------
重写窗口 WndProc 方法
C# code
protected override void WndProc(ref Message m)
{
    if (m.Msg == 0x00A1 && m.WParam.ToInt32() == 2)
    {
        m.Msg = 0x0201;
        m.LParam = IntPtr.Zero;
    }
    base.WndProc(ref m);
}