爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 2975|回复: 8

如何添加站点鼠标事件

[复制链接]

新浪微博达人勋

发表于 2015-9-18 19:47:41 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
假如鼠标移动到站点名称上,就触到达事件,从名称上离开,触发离开事件
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-9-18 19:59:31 | 显示全部楼层
参考此贴:(急)如何判断一个鼠标的坐标,也就是鼠标指针是否停留在一个站名label上
http://bbs.06climate.com/forum.p ... 655&fromuid=106
(出处: 气象家园)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-9-18 20:04:15 | 显示全部楼层
这个帖子是我发的,但是到后来一直这个问题没解决掉

“给MapView增加鼠标悬停事件” 要如何添加呢? SelectGraphics方法?

老师能不能给个示例,不知道不知道代码怎么写

密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-9-20 10:25:12 | 显示全部楼层
老师,能否给个示例,简单的就行
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-9-21 08:32:03 | 显示全部楼层
41756620 发表于 2015-9-20 10:25
老师,能否给个示例,简单的就行

抱歉,最近很忙,复杂的回复只能等有空了。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-10-1 14:19:50 | 显示全部楼层
简单的示例就行,老师
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-10-1 14:56:23 | 显示全部楼层
多谢分享~~~
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2015-10-1 18:25:52 | 显示全部楼层
期待。。。。。。
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2015-10-2 12:13:35 | 显示全部楼层
41756620 发表于 2015-10-1 14:19
简单的示例就行,老师


参考Demo程序代码,在MapView_MouseMove事件中加入判断鼠标在那个站点标注上面的代码,详细代码如下。只是简单的示例,可以根据自己的需求在此基础上修改。

        private void MapView_MouseMove(object sender, MouseEventArgs e)
        {
            double ProjX, ProjY;
            ProjX = 0;
            ProjY = 0;
            layersLegend1.ActiveMapFrame.MapView.ScreenToProj(ref ProjX, ref ProjY, e.X, e.Y);
            if (layersLegend1.ActiveMapFrame.MapView.Projection.IsLonLatMap)
            {
                this.TSSL_Coord.Text = "Lon: " + ProjX.ToString("0.00") + "; Lat: " + ProjY.ToString("0.00");
            }
            else
            {
                string theText = this.TSSL_Coord.Text = "X: " + ProjX.ToString("0.0") + "; Y: " + ProjY.ToString("0.0");
                if (layersLegend1.ActiveMapFrame.MapView.Projection.ProjInfo.Transform.ProjectionName == ProjectionNames.Robinson)
                    return;

                ProjectionInfo toProj = KnownCoordinateSystems.Geographic.World.WGS1984;
                ProjectionInfo fromProj = layersLegend1.ActiveMapFrame.MapView.Projection.ProjInfo;
                double[][] points = new double[1][];
                points[0] = new double[] { ProjX, ProjY };
                //double[] Z = new double[1];
                try
                {
                    Reproject.ReprojectPoints(points, fromProj, toProj, 0, 1);
                    this.TSSL_Coord.Text = theText + " (Lon: " + points[0][0].ToString("0.00") + "; Lat: " +
                        points[0][1].ToString("0.00") + ")";
                }
                catch
                {
                    //this.TSSL_Coord.Text = "X: " + ProjX.ToString("0.0") + "; Y: " + ProjY.ToString("0.0");
                }
            }

            //Mouse on station labels
            if (mapView1.MouseTool == MouseTools.SelectElements)
            {
                GraphicCollection tempGraphics = new GraphicCollection();
                double lonShift = 0;
                if (mapView1.SelectGraphics(new PointF(e.X, e.Y), ref tempGraphics, ref lonShift))
                {
                    Graphic graphic = tempGraphics.GraphicList[0];
                    if (graphic.Legend.BreakType == BreakTypes.LabelBreak)
                    {
                        MessageBox.Show(((LabelBreak)graphic.Legend).Text);
                    }
                }
            }
        }

密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表