WinForm中如何动态的获取图片的MouseMove事件,在一个地图上面,我动态添加一些小图片,现在想让鼠标放在图片上,图片上显示图片的详细信息,请大侠帮忙,谢谢

解决方案 »

  1.   

    我在阅读“制作不规则窗体”的相关文章时,有以下两个问题弄不明白,请高手指点: 
    ... 
    Private Point mouseOffSet; 
    private bool isMouseDown=false; 
    ... 
    private void MainForm_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) 

    if (e.Button == MouseButtons.Left) 

    mouseOffset = new Point(-e.X, -e.Y); 
    isMouseDown = true; 

    } private void MainForm_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) 

    if (isMouseDown) 

    Point mousePos = Control.MousePosition; 
    mousePos.Offset(mouseOffset.X, mouseOffset.Y); 
    this.Location = mousePos; 


      

  2.   

    谢谢你,但是这个不行啊,必须要先获取这个图片的对象,然后根据图片的对象得到详细信息我这里有些提示的信息:<他取出了图片的对象,并把它显示,但是我不明白这个是什么意思,请指点谢谢>
    private void axMapGis_MouseDownEvent(object sender, AxMapXLib.CMapXEvents_MouseDownEvent e)
            {
                axMapGis.ConvertCoord(ref e.x, ref e.y, ref featX1, ref featY1, MapXLib.ConversionConstants.miScreenToMap);
                if (e.button == 2)
                { 
                    MapXLib.Point pnt = new MapXLib.Point();//点
                    pnt.Set(featX1, featY1);                MapXLib.Features ftr = Layer.SearchAtPoint(pnt, MapXLib.SearchResultTypeConstants.miSearchResultDefault);
                    foreach (MapXLib.Feature obj in ftr)
                    {
                        Layer.KeyField = "NAME";
                        m_resInf.name = obj.KeyValue;
                        Layer.KeyField = "GLBID";
                        m_resInf.glbid = obj.KeyValue;
                        Layer.KeyField = "NODEID";
                        m_resInf.nodeid = obj.KeyValue;
                        Layer.KeyField = "MANUFTYPE";
                        m_resInf.manuftype = obj.KeyValue;
                        Layer.KeyField = "DESC";
                        m_resInf.desc = obj.KeyValue;
                        Layer.KeyField = "ID";
                        m_resInf.id = obj.KeyValue;
                    }
                    if (ftr.Count<=0)
                    {
                        ShowLCloseMenu(e);
                        return;
                    }
                    if (frmaf.IsDisposed)
                    {
                        //frmaf = new frmAddFeature(m_resInf);
                        frmaf = new frmAddFeature();
                        frmaf.LoadShowData(m_resInf);
                        frmaf.Show();
                    }
                    else
                    {
                        frmaf.LoadShowData(m_resInf);
                        frmaf.Show();
                    }
                }
            }