0

我正在使用 C# 中的 GMap。当我单击地图时,我想从我单击的位置获取屏幕上的位置。我有一个名为 myMap 的地图控制器。当我点击地图时,会触发一个名为 myMap_Click(object sender, MouseEventArgs e) 的事件。如果我将对象(在我的情况下为自定义表单)放置在位置 eX, eY 上,它将不会放置在我单击屏幕的位置。

我的目标是在我点击地图的地方显示一个表单。如果我平移地图或缩放,我不在乎它是否遵循坐标。现在我只想在我点击的位置上有一个自定义表单。

单击地图控制时如何获取屏幕位置?

问候!

4

2 回答 2

1

其实很简单!

private void myMap_Click(object sender, MouseEventArgs e)
{
    using (Form customForm = new Form())
    {
        customForm.StartPosition = FormStartPosition.Manual;
        customForm.DesktopLocation = MainMap.PointToScreen(e.Location);
        customForm.ShowDialog();
    }
}        

显然用您的等价物替换“Form customForm”部分。

于 2014-01-24T14:19:12.260 回答
0

好吧,您也可以使用它

gMapControl1.MouseClick += new MouseEventHandler(map_mouseCLick);

private void map_mouseCLick(object sender, MouseEventArgs e) {
        if (e.Button == MouseButtons.Left) {
            var point = gMapControl1.FromLocalToLatLng(e.X, e.Y);
            double lat = point.Lat;
            double lon = point.Lng;
            //this the the values of latitude in double when you click 
            double newPointLat = lat;
            //this the the values of longitude in double when you click 
            double newPointLong = lon;
        }
    }
于 2019-08-20T05:57:26.123 回答