Скачать проект
Я пытаюсь создать панель с цветом фона, который можно будет рисовать во время выполнения, когда пользователь удерживает левую кнопку мыши и перемещает ее,Все работы находят, когда пользователь начинает с верхнего левого угла и идет к нижнему правому, как показано на рисунке:
Но я хочу, чтобы пользователь мог сделать панель снизу справа вверху слева.Так же, как когда вы выбираете что-то на своем компьютере с помощью мыши

Вот мой код на данный момент:
public void parent_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
Point tempLoc = e.Location;
this.Location = new Point
(
Math.Min(this.Location.X, tempLoc.X),
Math.Min(this.Location.Y, tempLoc.Y)
);
this.Size = new Size
(
Math.Abs(this.Location.X - tempLoc.X),
Math.Abs(this.Location.Y - tempLoc.Y)
);
this.Invalidate();
}
}
Я думаю, что это то, куда я идунеправильно, и я просто не могу найти правильный алгоритм для него:
this.Size = new Size
(
Math.Abs(this.Location.X - tempLoc.X),
Math.Abs(this.Location.Y - tempLoc.Y)
);
Но если я использую прямоугольник, он работает нормально, но я хочу, чтобы моя панель тоже могла это делать.