質問

問題は、いくつかのグラフィックスをフォーム(たとえば長方形)で表示していて、ポイントがtheesフィールドを越えたときにキャプチャしたいことです。だから私はtheesの長方形の座標を見つけようとしますが、それはフォームの座標であるため、マウスの位置と一致しません。

それでは、フォームやコントローラーではなく、Pointが画面上で持っている座標を画面上で見つける方法はあるのでしょうか?

役に立ちましたか?

解決

変換用の各コントロールhs PointToFooメソッド。これは、目的の場所にあるオブジェクトの親から呼び出す必要があることに注意してください。

Point scrPos = this.PointToScreen(panel1.Location);

別の方法として、次の方法でパネルの画面座標を取得できます。

Point scrPos = panel1.PointToScreen(new Point(0,0));

上記の2つの例では、パネルの境界線サイズが異なるため、結果が異なる可能性があることに注意してください。

他のヒント

フォーム内で this.CreateGraphics()を呼び出してフォームのグラフィックオブジェクトを使用している場合、長方形を描画するときに使用される座標は、フォーム上のイベントをクリックします。

ポインタの座標を知っていますか? GetWindowRect()を呼び出してウィンドウの座標を取得し、マウスカーソルから上/左を減算してクライアント座標を取得できます。

実際にそれを行う機能があることを覚えているようですが、カスタムGUIコントロールに手を出してからしばらく経ちました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top