private int WS_SIZEBOX    =  0x00040000;
protected override CreateParams CreateParams
{
get
{
// TODO:  添加 Form1.CreateParams getter 实现
CreateParams param = base.CreateParams;
param.Style |= WS_SIZEBOX;
return param;
}
}

解决方案 »

  1.   

    可以在鼠标移动事件里面做处理,首先判断是否左键被按下,同时鼠标指针处于窗体的边缘,如果是的话,则按上下左右,以及四个角不同的鼠标位置分别做不同的处理,注意在你的类里面要保留两个int值,记作oldx,oldy,分别是鼠标移动之前的坐标,处理事件的时候,从事件参数e可以获得鼠标移动后的坐标currentx,currenty,所以鼠标移动的差值可以算出来,在事件处理程序的最后,一定要把currentx和currenty值赋给oldx,oldy。
         做按指针不同的位置作处理的时候,应该很简单,只需要修改窗体的长度宽度或者坐标,比如指针位于左边框的时候,即要修改窗体坐标,又要修改宽度,而位于右边框的时候,则只需要修改宽度。如果你需要虚框的效果,我认为可以调用API函数,但这要麻烦一些。还有一点要注意的是,鼠标的指针要作变化。
      

  2.   

    zhouhongyun(春天的十七个瞬间)不用这么麻烦吧
      

  3.   

    zhouhongyun(春天的十七个瞬间)
    大哥,这个方法当然可以,但是在一个很差的机器上运行时做这种高速就会有尾巴,我试过,这是我无法忍受的,用户也一样
      

  4.   

    TurboWang(王中王)
    您的这个方法很棒,再问一下,用了这个方法以后窗体的边框是立体的,怎样可以是没有边的,也就是不是立体的?