WinFormsアプリで作業しており、MouseDownイベントとMouseUpイベントの場所を記録する必要があります。私の問題は、イベントが異なるコントロールで発生するため、それらの座標系が一致しないことです(必要なのはドラッグの量だけです)。送信コントロールの場所に追加しようとしましたが、それでも正しく機能しません。
これに対する簡単な解決策はありますか?
WinFormsアプリで作業しており、MouseDownイベントとMouseUpイベントの場所を記録する必要があります。私の問題は、イベントが異なるコントロールで発生するため、それらの座標系が一致しないことです(必要なのはドラッグの量だけです)。送信コントロールの場所に追加しようとしましたが、それでも正しく機能しません。
これに対する簡単な解決策はありますか?
そのためにPointToScreenメソッドを使用できます。マウス ハンドラー コードは次のようになります。
private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
Control control = (Control) sender;
Point pointOnScreen = control.PointToScreen(new Point(e.X, e.Y));
...
}