2012-04-20 46 views
2

我有一個垂直滾動的控件。我需要計算相對於控件頂部的鼠標位置(點擊),而不僅僅是可見區域。鼠標位置如何轉換爲滾動控件?

例如,說我的控制有500高度的滾動條會導致明顯的矩形,有100高度所以,當我部分滾動時,客戶端的座標(從鼠標點擊)將相對於一些返回客戶矩形(例如50)。

但我想知道的是從我的控制開始的偏移量,所以它會像250

我一直在努力了一段時間摸不着頭腦,我想我一定可以忽略一些容易的事情,因爲我沒有在這個主題上找到很多信息。

謝謝。

回答

2

試着看看PointToClient MethodMousePosition Method並嘗試使用鼠標的ScreenCoordinates並將其轉換爲控件的相對座標。

Point screenPos = new Point(MousePosition.X, MousePosition.Y); 
Point myPos = myControl.PointToClient(screenPos);