2012-04-20 12 views
2

私は垂直にスクロールするコントロールを持っています。私は、可視領域だけでなく、コントロールの上端に対するマウスの位置(クリック時)を計算する必要があります。マウスの位置はスクロールコントロールにどのように変換されますか?

たとえば、私のコントロールの高さが500であるとします。スクロールバーによって、表示される矩形の高さが100になります。したがって、部分的にスクロールすると、クライアントの座標(マウスクリックから)クライアント矩形(例えば、50)。

は、しかし、私が知りたいのは、私のコントロールの先頭からのオフセットであるので、私はしばらくの間しようとしてきた250

のようなものは、これを理解するだろう、と私は私がしなければならないと思います私はトピックに関する多くの情報を見つけていないので、何かを簡単に見落としてしまいます。

ありがとうございました。

答えて

2

PointToClient MethodMousePosition Methodを見て、マウスのScreenCoordinatesを取得し、コントロールの相対座標に変換してみてください。

Point screenPos = new Point(MousePosition.X, MousePosition.Y); 
Point myPos = myControl.PointToClient(screenPos); 
関連する問題