DOBON.NETプログラミング道掲示板

■34265 / 親階層)  MouseEventArgsのカレント座標
□投稿者/ あばば無人君 一般人(4回)-(2019/05/27(Mon) 14:38:23)
  • アイコン環境/言語:[Win10Pro(Ver1809)、C#(.Net4.7.1)] 
    分類:[.NET] 

    現在、Win10Pro(Ver1809)+C#(.Net4.7.1)の環境でタイトルバーの無い
    フォームアプリケーション※を作成しております。
    ※FormのプロパティFormBorderStyle=None

    ただ、このアプリは移動はさせたいとの事なのでMouseDown/MouseMove/MouseUpの
    イベントを設定して以下の実装をしております。
    (マウスでフォームをドラッグして移動できる実装)

    private bool IsFormMoveStart = false;
    private Point MouseLocation;

    private void Form1_MouseDown(object sender, MouseEventArgs e)
    {
    Debug.WriteLine("マウスダウンイベント発生!:" + e.Button + e.Location);

    IsFormMoveStart = true;
    MouseLocation = e.Location;
    }

    private void Form1_MouseMove(object sender, MouseEventArgs e)
    {
    if (IsFormMoveStart)
    {
    Debug.WriteLine("マウスムーブイベント発生!:" + e.Button + e.Location);

    /// マウスの移動距離(ピクセル?)を求める
    int moveX = e.Location.X - MouseLocation.X;
    int moveY = e.Location.Y - MouseLocation.Y;

    /// マウスの移動距離分だけ当EXEフォームも移動させる
    this.Location = new Point(this.Location.X + moveX,
    this.Location.Y + moveY);

    // MouseLocation = e.Location; ★
    }
    }

    private void Form1_MouseUp(object sender, MouseEventArgs e)
    {
    Debug.WriteLine("マウスアップイベント発生!:" + e.Button + e.Location);

    IsFormMoveStart = false;
    }

    質問はこのフォームを実際にマウスで移動した時の以下ログのX座標の値です。

    マウスダウンイベント発生!:Left{X=200,Y=100} -@
    マウスムーブイベント発生!:Left{X=200,Y=100} -A
    マウスムーブイベント発生!:Left{X=201,Y=100} -B
    マウスムーブイベント発生!:Left{X=200,Y=100} -C
    マウスアップイベント発生!:Left{X=200,Y=100} -D

    @A行目はフォームをマウスで押下(指は解放していない)した時の物で、
    X座標はその時点の値が出力されていて問題は無い認識です。

    次に右へ1ピクセル動かしたログがBCなのですが、Bで200 → 201 となったのに
    Cで200に戻っています。
    また、指を開放した時のDも同様です。

    最初は私の操作がおかしいのかと思いましたが、何度やってもフォームは確実に
    1ピクセル動いていますし、また他の人間に操作させても同じ結果でした。

    CDで1ピクセル小さい値がイベントとして上がってくる原因が分かる方は
    いらっしゃいますでしょうか?

マルチポストを報告
違反を報告
削除キー/

前の記事(元になった記事) 次の記事(この記事の返信)
親記事 →Re[1]: MouseEventArgsのカレント座標 /Hongliang
 
上記関連ツリー

Nomalアイコン MouseEventArgsのカレント座標 / あばば無人君 (19/05/27(Mon) 14:38) #34265 ←Now
Nomalアイコン Re[1]: MouseEventArgsのカレント座標 / Hongliang (19/05/27(Mon) 15:32) #34266
  └Nomalアイコン Re[2]: MouseEventArgsのカレント座標 / あばば無人君 (19/05/27(Mon) 16:11) #34267 解決み!

All 上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信

Mode/  Pass/


- Child Tree -