William Winner
Что вам нужно сделать, так это реализовать его самостоятельно, используя события MouseMove и MouseDown формы. Это немного сложнее, если у вас есть меню, потому что тогда вы также должны обрабатывать MouseMove меню и MouseDown, а также потому, что это будет переопределять события формы. Основы таковы:
private void panel1_MouseMove(object sender, MouseEventArgs e)
{
if ((e.X <= 2 && e.Y <= 2) || (e.X + 2 >= this.Width && e.Y + 2 >= this.Height))
{
this.Cursor = Cursors.SizeNWSE;
}
else if ((e.X + 2 >= this.Width && e.Y <= 2) || (e.X <= 2 && e.Y + 2 >= this.Height))
{
this.Cursor = Cursors.SizeNESW;
}
else if (e.X <= 2 || e.X + 2 >= this.Width)
{
this.Cursor = Cursors.SizeWE;
}
else if (e.Y <= 2 || e.Y + 2 >= this.Height)
{
this.Cursor = Cursors.SizeNS;
}
else
{
this.Cursor = Cursors.Default;
}
}
Конечно, чтобы полностью реализовать его, вам придется проверить, была ли мышь опущена (для этого вы можете использовать bool и установить его в событиях MouseDown и MouseUp), а затем проверить, в какую сторону она перетаскивается. Если его перетаскивают вверх или влево, вам придется сначала переместить форму, а затем изменить размер в зависимости от того, насколько она переместилась. Если он находится справа или внизу, вы можете просто установить высоту и ширину в положение мыши (конечно, сначала проверьте, потому что похоже, что мышь не зарегистрирована как находящаяся в форме, пока она не станет на два меньше высоты и ширины).
И вы могли бы упростить его, разрешив им изменять размер только с помощью нижнего правого угла, и вы могли бы добавить изображение в этом углу, указывающее, что вы можете изменить его размер.
[Обновление]
На самом деле, это не собирается быть так просто. Сначала вам нужно будет сделать глобальный крюк на мыши. Причина в том, что MouseMove не будет работать, когда вы выходите за пределы формы, что вам придется сделать, чтобы изменить ее размер. Итак, это можно сделать, но опять же, вам придется использовать глобальный крюк. Статья о том, как это сделать, находится здесь:
Обработка глобальных Крючков мыши и клавиатуры в C#[
^]