移動できる場所でユーザーコントロールを作成する必要がありますが、スクラッチから外す必要があります(つまり、コントロールの位置を取得してマウスを移動するとそれに応じてコントロールを動かす) これは私が今持っているものです。スクラッチから移動可能なコントロールを作成する
パブリック部分クラスMainMenu:UserControl { public Point OldMouseLoc; public Point OldWindowLoc; public MainMenu() { InitializeComponent();私のコントロールの場所がその親ウィンドウの左上に相対的である一方でMousePositionは、画面の上部に相対的であるため、Imはトラブルを抱えて今 }
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
}
}
}
理由があります。すべての座標を把握する数学は私に大きな頭痛を与えています。これらのX位置を固定してYを理解するために使用することができますので、私は自分のやり方を学ぶことができます。
ああおかげで、これは方法ではなく、財産XD – Oztaco
だった実現するために私にしばらく時間がかかった私はまた、私は通常私の可動のために使用したコードを追加しましたコントロール。 – max
ああありがとう、私はタイマーの代わりにmousemoveを使用すると思っていません – Oztaco