Событие MouseMove работает с переходом между двумя местами?C#

Место общения программистов C#
Ответить
Anonymous
 Событие MouseMove работает с переходом между двумя местами?

Сообщение Anonymous »

Я написал класс для меток, которые я хочу иметь возможность перемещать и изменять размер во время выполнения с помощью мыши.
Это легко сделать, добавив три события мыши (label.MouseDown, label.MouseUp, label.MouseMove)
MouseDown :: Когда кнопка мыши опускается вниз, в зависимости от местоположения мыши (она находится на краю метке или внутри нее), он определяет, перемещается или изменяет размер цель, и сохраняется в двух переменных (_moving, _resizing).
MouseMove : : при перемещении мыши, если кнопка мыши нажата, размер или расположение метки будут обновлены.
MouseUp :: Когда кнопка мыши нажата перевернуть, переменные неверны.

Код: Выделить всё

public class Ulabel
{
public System.Windows.Forms.Label label;

public UTask(string title, Color color, int Lno)
{
label = new System.Windows.Forms.Label();
label.Text = title;
label.BackColor = color;
label.Name = "T" + Lno.ToString();
label.AutoSize = false;
label.Size = new Size(20, 50);
label.Location = new Point(50, 50);
Init();
}

private bool _moving;
private bool _resizing;

private Point _cursorStartPoint;
private Point _cursorStartPointmove;
private Point _cursorLast;
private int _Initwidth;

private bool MouseIsInRightEdge;

int count_call = 0;

internal void Init()
{
_moving = false;
_resizing = false;
_moveIsInterNal = false;
_cursorStartPoint = Point.Empty;
_cursorStartPointmove = Point.Empty;

MouseIsInRightEdge = false;

label.MouseDown += (sender, e) => MouseDown(label, e);
label.MouseUp += (sender, e) => MouseUp(label);
label.MouseMove += (sender, e) => MouseMove(label, e);
}

private void UpdateMouseEdgeProperties(Control control, Point mouseLocationInControl)
{
MouseIsInRightEdge = Math.Abs(mouseLocationInControl.X - control.Width) 

Подробнее здесь: [url]https://stackoverflow.com/questions/78827301/mousemove-event-work-with-jump-between-two-location[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»