Я должен создать пользовательский элемент управления, куда вы можете переместить его, но я должен сделать его с нуля (т.е. получить положение элемента управления и вычислить разницу при перемещении мыши и перемещении элемента управления соответственно)
это то, что у меня есть сейчас.
публичный частичный класс MainMenu: UserControl
{
public Point OldMouseLoc;
public Point OldWindowLoc;
public MainMenu ()
{
InitializeComponent ();
}
private void customButton1_MouseDown(object sender, MouseEventArgs e)
{
OldMouseLoc = MousePosition;
OldWindowLoc = new Point(this.Location.X + this.Parent.Location.X,this.Location.Y + this.Parent.Location.Y);
Mover.Start();
}
private void Mover_Tick(object sender, EventArgs e)
{
Point NewMouseLoc = MousePosition;
if (NewMouseLoc.X > OldMouseLoc.X || true) { // ( || true is for debugging)
this.Location = new Point(NewMouseLoc.X - OldWindowLoc.X, this.Location.Y);
MessageBox.Show(NewMouseLoc.X.ToString() + " " + OldWindowLoc.X.ToString()); // for debugging
}
}
}
Теперь причина, по которой у меня возникают проблемы, заключается в том, что MousePosition относительно верхней части экрана, в то время как расположение моих элементов управления относительно верхнего левого угла его родительского окна. Математика, чтобы выяснить координаты для всего, вызывает у меня огромную головную боль, пожалуйста, только исправьте их положение X, чтобы я мог использовать это, чтобы выяснить Y (чтобы я мог научиться самому).