| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4066 人关注过本帖
标题:winform窗口鼠标位置问题
只看楼主 加入收藏
哦是菜鸟
Rank: 2
等 级:论坛游民
帖 子:40
专家分:15
注 册:2011-9-14
结帖率:87.5%
收藏
已结贴  问题点数:10 回复次数:7 
winform窗口鼠标位置问题
当窗体中加入控件填充下
        protected override void OnMouseMove(MouseEventArgs e)
        {
            this.Text += "x" + e.X.ToString() + "y" + e.Y.ToString();
            MessageBox.Show("");
            base.OnMouseMove(e);
        }
无法获得鼠标位置。。。

用Control.MousePosition获得当前鼠标的坐标CurrentPoint,使用Control.PointToClient方法,前面获得的CurrentPoint作为其参数,返回的Point类型的对象即为鼠标相对于某个控件的坐标。

现在以鼠标相对于窗体的坐标做为例子,如下:
            Point screenPoint = Control.MousePosition;//鼠标相对于屏幕左上角的坐标

            Point formPoint = this.PointToClient(Control.MousePosition);//鼠标相对于窗体左上角的坐标

同理:

            Point button1Point= button1Point.PointToClient(Control.MousePosition); //鼠标相对于button1左上角的坐标

还有Control.PointToScreen方法,返回的是相对于屏幕的坐标。
本菜鸟懒谁帮整理下窗体下随时捕获鼠标事件
 protected override void WndProc(ref Message m)
        {
            if (m.Msg == 0x0200)
            //如果是鼠标操作得到鼠标位于窗口xy
搜索更多相关主题的帖子: 鼠标 
2011-09-15 11:15
yinniannian
Rank: 9Rank: 9Rank: 9
来 自:河北省石家庄
等 级:蜘蛛侠
威 望:2
帖 子:256
专家分:1007
注 册:2011-5-13
收藏
得分:0 
我不是太理解你的意思!
不过,我写了个怎样显示鼠标在窗体中位置的程序,希望对你有帮助!
private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            lblMouseLocation.Text = "鼠标的横坐标:" + e.X.ToString() + "鼠标的纵坐标:" + e.Y.ToString();
        }

代做小型软件。
QQ:449795473
2011-09-15 14:31
哦是菜鸟
Rank: 2
等 级:论坛游民
帖 子:40
专家分:15
注 册:2011-9-14
收藏
得分:0 
你随便加个控件到form1里面在dock fill
鼠标位置直接获得不到
2011-09-15 15:20
夜殤
Rank: 2
等 级:论坛游民
帖 子:20
专家分:42
注 册:2011-8-17
收藏
得分:5 
private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            lblMouseLocation.Text = "鼠标的横坐标:" + e.X.ToString() + "鼠标的纵坐标:" + e.Y.ToString();
        }
你获取的是Form窗体的鼠标位置 再拖个按钮把它绑定在Form中 那么你鼠标放置在被绑定的控件上所以无法获取Form窗体的坐标
2011-09-15 21:54
哦是菜鸟
Rank: 2
等 级:论坛游民
帖 子:40
专家分:15
注 册:2011-9-14
收藏
得分:0 
知道无法获得
所以想重写方法就解答
2011-09-16 14:40
yinniannian
Rank: 9Rank: 9Rank: 9
来 自:河北省石家庄
等 级:蜘蛛侠
威 望:2
帖 子:256
专家分:1007
注 册:2011-5-13
收藏
得分:5 
你想获得鼠标在哪个控件上的坐标,直接把代码放在这个控件的onMouseMove事件里就行啦
lblMouseLocation.Text = "鼠标的横坐标:" + e.X.ToString() + "鼠标的纵坐标:" + e.Y.ToString();

代做小型软件。
QQ:449795473
2011-09-16 15:43
哦是菜鸟
Rank: 2
等 级:论坛游民
帖 子:40
专家分:15
注 册:2011-9-14
收藏
得分:0 
那是结贴
2011-09-17 19:54
king073
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-1-22
收藏
得分:0 
回复 6楼 yinniannian
我在Form中某控件的MouseMove事件中添加代码,但鼠标移至该控件却不响应事件!!!这个控件是自制的,控件本身有MouseMove事件。不知道是不是这个原因。求大神指导!!
2013-05-16 15:56
快速回复:winform窗口鼠标位置问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045072 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved