如何在activex控件中使用/提取控件的标识

时间:2013-11-28 01:26:26

标签: c# .net winforms gmap.net

我还有另一个问题..

首先考虑THIS ..

关于我早期的问题,我需要拖动一个按钮,以及与我如何拖动/移动pictureBox相关的表格。所有控件都在.NET内部

现在我正在研究这个伟大的Control, GMaps,其中适用于.NET框架中的谷歌API。
我的目标是在Google的API上创建类似infoWindow的内容。所以我通过在上面的第一个链接上创建一个新表单(充当infoWindow)来定制它。 如果您已经看过Gmaps.net,那它确实是一张地图。可拖动,平移到缩放,可以添加标记/多边形..它缺少的一件事是它的文档+我想用标记的infoWindow工具..
它只有“工具提示”,只能在其中包含字符串 例如marker.ToolTipText="Blah Blah"
关于codeplex的讨论,据说你必须创建自己的工具提示,不要只显示字符串。但我找不到一个好的例子,除了THIS继承了 contextMenu ,我无法特别使用它,因为每当我再次点击它时,它就会消失。

回到我的问题,如果你已经检查了上面的第一个链接,你就会知道我想要实现什么,现在唯一的问题是,我不能使用这个代码:

Point p = Button1.PointToScreen(Point.Empty);
p.Offset(0, (-1 * Form2.Height) - 15);
Form2.Location = p;

此代码使Form2跟随Button1无论走到哪里都不幸。不幸的是,在我的gMap控件上,没有按钮。里面只有标记。
请记住:此地图是一个控件 enter image description here

那么,如何将标记用作表单的父级,因此如果我尝试拖动地图,则会出现以下情况:

Point p = marker.PointToScreen(Point.Empty);
p.Offset(0, (-1 * Form2.Height) - 15);
Form2.Location = p;

更新我使用此代码,没有错误,无法正常工作..

 void mainMap_MouseDown(object sender, MouseEventArgs e)
    {

        Point p = (marker.LocalPosition = PointToScreen(Point.Empty));
        //Point p = button1.PointToScreen(Point.Empty); --> this gives the error that it cannot be converted
        p.Offset(0, (-1 * f2.Height) - 15);
        f2.Location = p;
    }

1 个答案:

答案 0 :(得分:0)

 void mainMap_OnMapDrag()
    {

        f2.Show();
        f2.Location = marker.LocalPosition;
        //No offsetting..
    }

LocalPosition属性获取标记相对于屏幕的位置。唯一的问题是C#中的Dispose函数,如果您只创建一个实例,则无法重新创建它,如果添加实例,它将创建Form2每个像素移动。它在VB中会更好。