Есть код который двигает форму internal class FormMove : Form1 { internal void StartMove() { MouseDown += new MouseEventHandler(MyForm1_MouseDown); MouseMove += new MouseEventHandler(MyForm1_MouseMove); MouseUp += new MouseEventHandler(MyForm1_MouseUp); } internal int iFormX = 1; internal int iFormY = 1; internal int iMouseX = MousePosition.X; internal int iMouseY = MousePosition.Y; internal void MyForm1_MouseDown(object sender, MouseEventArgs e) { isDragging = true; oldPos = new Point(); oldPos.X = e.X; oldPos.Y = e.Y; } internal void Form1_MouseDown(object sender, MouseEventArgs e) { iFormX = Location.X; iFormY = Location.Y; iMouseX = MousePosition.X; iMouseY = MousePosition.Y; } internal void MyForm1_MouseMove(object sender, MouseEventArgs e) { if (this.isDragging) { Point tmp = new Point(Location.X, Location.Y); tmp.X += e.X - oldPos.X; tmp.Y += e.Y - oldPos.Y; Location = tmp; } } internal void MyForm1_MouseUp(object sender, MouseEventArgs e) { isDragging = false; } internal void Form1_MouseMove(object sender, MouseEventArgs e) { int iMouseX2 = MousePosition.X; int iMouseY2 = MousePosition.Y; if (e.Button == MouseButtons.Left) Location = new Point(iFormX + (iMouseX2 - iMouseX), iFormY + (iMouseY2 - iMouseY)); } private bool isDragging = false; private Point oldPos; } Код internal class FormMove : Form1 { internal void StartMove() { MouseDown += new MouseEventHandler(MyForm1_MouseDown); MouseMove += new MouseEventHandler(MyForm1_MouseMove); MouseUp += new MouseEventHandler(MyForm1_MouseUp); } internal int iFormX = 1; internal int iFormY = 1; internal int iMouseX = MousePosition.X; internal int iMouseY = MousePosition.Y; internal void MyForm1_MouseDown(object sender, MouseEventArgs e) { isDragging = true; oldPos = new Point(); oldPos.X = e.X; oldPos.Y = e.Y; } internal void Form1_MouseDown(object sender, MouseEventArgs e) { iFormX = Location.X; iFormY = Location.Y; iMouseX = MousePosition.X; iMouseY = MousePosition.Y; } internal void MyForm1_MouseMove(object sender, MouseEventArgs e) { if (this.isDragging) { Point tmp = new Point(Location.X, Location.Y); tmp.X += e.X - oldPos.X; tmp.Y += e.Y - oldPos.Y; Location = tmp; } } internal void MyForm1_MouseUp(object sender, MouseEventArgs e) { isDragging = false; } internal void Form1_MouseMove(object sender, MouseEventArgs e) { int iMouseX2 = MousePosition.X; int iMouseY2 = MousePosition.Y; if (e.Button == MouseButtons.Left) Location = new Point(iFormX + (iMouseX2 - iMouseX), iFormY + (iMouseY2 - iMouseY)); } private bool isDragging = false; private Point oldPos; } И код который вызывает метод, который добавляет события к мыше internal Form1() { InitializeComponent(); FormMove.StartMove(); } Код internal Form1() { InitializeComponent(); FormMove.StartMove(); } Ругатня: Хз что делать лол, очень хочется не засорять свою мэйн форму хуйнёй по типу передвижение формы , хотелось бы вывести такую хуйню в отдельные классы
Можно сделать так чтобы двигать за какой-либо контрол(элемент) формы /* Функция для передвижения формы без бордера */ public void Controls_MouseDown(object sender, MouseEventArgs e) { // Если пользователь нажал левую кнопку мыши if (e.Button.Equals(MouseButtons.Left)) { ((Control)sender).Capture = false; // захват элемента управления // Посылаем сообщение переместить элемент управления var m = Message.Create(Handle, 0xa1, new IntPtr(0x2), IntPtr.Zero); // Обработчик сообщения WndProc(ref m); } } Код /* Функция для передвижения формы без бордера */ public void Controls_MouseDown(object sender, MouseEventArgs e) { // Если пользователь нажал левую кнопку мыши if (e.Button.Equals(MouseButtons.Left)) { ((Control)sender).Capture = false; // захват элемента управления // Посылаем сообщение переместить элемент управления var m = Message.Create(Handle, 0xa1, new IntPtr(0x2), IntPtr.Zero); // Обработчик сообщения WndProc(ref m); } } И вызов: public Form1() { InitializeComponent(); // Элементы за которые можно передвигать форму Label.MouseDown += Controls_MouseDown; Panel.MouseDown += Controls_MouseDown; } Код public Form1() { InitializeComponent(); // Элементы за которые можно передвигать форму Label.MouseDown += Controls_MouseDown; Panel.MouseDown += Controls_MouseDown; } Модификаторы доступа internal вообще не нужны тебе. Ещё эта возня с координатами. У тебя весь процесс передвижения лежит внутри формы не статического класса, зачем ещё какой-то класс делать не понятно.
Ch3p45a245, сейчас бы какой-то бы ноунейм пытался учить что надо юзать а что нет))) var - это вообще ахеренная вещь! Но их не нужно юзать если пишешь примерно такой код: var length = 10;// В таком случае нужно явный тип int и.т.д Код var length = 10;// В таком случае нужно явный тип int и.т.д Так что не выёживайся что знаешь что-то лучше других.
сделай паблик. нахуй интернал. --- Сообщение объединено с предыдущим 1 июл 2021 Я вообще всегда делаю всё паблик. и методы и классы и формы и так далее.
@CoderVir, Мне похуй, правда, я не шарю в декомпиляции кода, и жалко что не шарю в защите от декомпиляторов, у меня антидебагер хуярит основную программу просто так, ты о чём