私は現在、特定のコントロール(この場合はtoolStrip)上でマウスをクリックして移動するときに、フォームを移動するために前述のコードを使用しています。
private void toolStrip1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left) //Wenn die linke Maustaste gedrückt wurde,
FormMouseDownLocation = e.Location; //wird die Position der Maus gespeichert
}
private void toolStrip1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left) //Wird die Linke taste gedrückt und bewegt,
{
this.Left += e.X - FormMouseDownLocation.X; //so verschiebt sich das Fenster bei jeder Bewegung um die Positionänderung der Maus (hier die X Pos)
this.Top += e.Y - FormMouseDownLocation.Y; //so verschiebt sich das Fenster bei jeder Bewegung um die Positionänderung der Maus (hier die Y Pos)
}
}
今、私は問題を抱えています。カーソルはフォームよりも速く移動するため、カーソルがtoolStripを離れると、フォームの移動が停止することがよくあります。これは、このコードをメインフォーム以外のコントロールと組み合わせて使用した場合にのみ発生します。
この動作に対する解決策はありますか、または別のコントロールをクリックしたときにフォームの位置を変更するためのより良い方法はありますか?
前もって感謝します
追加情報:私はwinformsを使用しています、FormBorderStyle:なし