Я пытаюсь переместить некоторые панели вручную, которые содержат рисунки и другие элементы управления в C# WinForms. Я искал в Интернете, но безуспешно. Я слышал, что мне нужно будет преобразовать весь проект в WPF или использовать OpenGL для рисования (что я не могу, потому что это элементы управления). Это мой код для перемещения панелей, в нем отсутствует пара переменных, поскольку они используются для перемещения сетки за всеми узлами.
private void PictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if (Control.MouseButtons == MouseButtons.Right)
{
gridoffsetx = gridoffsetxprev + MousePosition.X - mouseoffsetx;
gridoffsety = gridoffsetyprev + MousePosition.Y - mouseoffsety;
Point relativemouse = PointToClient(new Point(MousePosition.X, MousePosition.Y));
Point newpanelloc = new Point();
for (int i = 0; i < nodes.Count; i++)
{
newpanelloc.X = nodesprevpos[i].X + MousePosition.X - mouseoffsetx;
newpanelloc.Y = nodesprevpos[i].Y + MousePosition.Y - mouseoffsety;
nodes[i].pnl.Location = newpanelloc;
}
pictureBox1.Invalidate();
}
}