Сначала запишите это в InitializeComponent ():
public const int WM_NCLBUTTONDOWN = 0xA1;
public const int HT_RIGHT = 0xB;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
[DllImport("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
[DllImport("user32.dll")]
public static extern bool ReleaseCapture();
this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Resize_Form);
Затем используйте метод, подобный этому. В этом случае размер моей формы можно изменить только с правой стороны, но ее легко изменить с любой стороны:
private void Resize_Form(object sender, MouseEventArgs e)
{
if ((e.Button == MouseButtons.Left) && (MousePosition.X >= this.Location.X + formWidth - 10))
{
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.SizeWE;
ReleaseCapture();
SendMessage(Handle, WM_NCLBUTTONDOWN, HT_RIGHT, 0);
formWidth = this.Width;
}
}