WinForms ドラッグ&ドロップ実装:コントロール自由配置

コントロールの自由なドラッグを実現するには、次の手順を実行します。

コントロールのMouseDown、MouseMove、およびMouseUp イベントの処理プログラムを設定してください。

private Point mouseOffset;
private bool isMouseDown = false;

private void Control_MouseDown(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Left)
    {
        isMouseDown = true;
        Control control = (Control)sender;
        mouseOffset = new Point(e.Location.X, e.Location.Y);
    }
}

private void Control_MouseMove(object sender, MouseEventArgs e)
{
    if (isMouseDown)
    {
        Control control = (Control)sender;
        Point mousePos = control.PointToScreen(new Point(e.X, e.Y));
        control.Location = new Point(mousePos.X - mouseOffset.X, mousePos.Y - mouseOffset.Y);
    }
}

private void Control_MouseUp(object sender, MouseEventArgs e)
{
    isMouseDown = false;
}

2、必要なコントロールに、上記のイベントハンドラをバインドします。

control.MouseDown += Control_MouseDown;
control.MouseMove += Control_MouseMove;
control.MouseUp += Control_MouseUp;

以上の手順に従うことで、コントロールを自由にドラッグできるようになります。ユーザーがマウス左ボタンを押してコントロールをドラッグすると、マウスの移動に応じてコントロールの位置が適切に調整されます。

bannerAds