C# 获取鼠标相对当前窗口坐标的方法
編寫客戶端應(yīng)用程序時(shí),經(jīng)常要用到鼠標(biāo)當(dāng)前的位置。
在C#的winform開發(fā)中,可以用Control.MousePosition獲得當(dāng)前鼠標(biāo)的坐標(biāo),使用PointToClient計(jì)算鼠標(biāo)相對于某個(gè)控件的坐標(biāo)。
示例如下:
?
Point screenPoint = Control.MousePosition;//鼠標(biāo)相對于屏幕左上角的坐標(biāo)
Point formPoint = this.PointToClient(Control.MousePosition);//鼠標(biāo)相對于窗體左上角的坐標(biāo)
Point contextMenuPoint = contextMenuStrip1.PointToClient(Control.MousePosition); //鼠標(biāo)相對于contextMenuStrip1左上角的坐標(biāo)
附,c#獲取鼠標(biāo)坐標(biāo)
很多時(shí)候,需要用到鼠標(biāo)在相對于窗體上的坐標(biāo),或相對于屏幕的坐標(biāo)。
用Control.MousePosition獲得當(dāng)前鼠標(biāo)的坐標(biāo)CurrentPoint,使用Control.PointToClient方法,前面獲得的CurrentPoint作為其參數(shù),返回的Point類型的對象即為鼠標(biāo)相對于某個(gè)控件的坐標(biāo)。
以鼠標(biāo)相對于窗體的坐標(biāo)做為例子,如下:
?
Point screenPoint = Control.MousePosition;//鼠標(biāo)相對于屏幕左上角的坐標(biāo)
Point formPoint = this.PointToClient(Control.MousePosition);//鼠標(biāo)相對于窗體左上角的坐標(biāo)
同理:
?
Point button1Point= button1Point.PointToClient(Control.MousePosition); //鼠標(biāo)相對于button1左上角的坐標(biāo)
另外,還有Control.PointToScreen方法,返回相對于屏幕的坐標(biāo)。有興趣的朋友,可以深入研究下。
?
? private void button_Scroll_MouseLeave(object sender, EventArgs e)//鼠標(biāo)離開模擬滾動條按鈕移動
? ? ? ? {
? ? ? ? ? ? EnableMoveScroll = false;
? ? ? ? ? ? MouseStatusEvent("離開");
? ? ? ? ? ? Point screenPoint = Control.MousePosition;//鼠標(biāo)相對于屏幕左上角的坐標(biāo)
? ? ? ? ? ? Point formPoint = this.PointToClient(screenPoint);//鼠標(biāo)相對于窗體左上角的坐標(biāo)
? ? ? ? ? ? button_Scroll.Location = formPoint;
? ? ? ? }
總結(jié)
以上是生活随笔為你收集整理的C# 获取鼠标相对当前窗口坐标的方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: H264 RTP头分析
- 下一篇: 如何在C#控件中画点并获得指定点的像素颜