我还有一个问题。。
考虑先看看这个..
在我早期的问题上,我需要拖动一个按钮,以及一个与我如何拖动/移动图片框相关的表单。所有控件都在 .NET 中
现在我正在研究这个伟大的控件,GMaps,它在 .NET 框架中适应了谷歌的 API。
我的目标是在 google 的 API 上创建类似于 infoWindow 的东西。所以我通过在上面的第一个链接上创建一个新表单(充当 infoWindow)来定制它。如果您看过 Gmaps.net,它确实是一张地图。可拖动,平移到缩放,可以添加标记/多边形。它缺少的一件事是它的文档+我想要的带有标记的 infoWindow 工具。
它只有它的“工具提示”,其中只能有字符串。
例如marker.ToolTipText="Blah Blah"
,在 codeplex 的讨论中,据说您必须为其创建自己的工具提示,而不是只显示一个字符串。但我找不到一个很好的例子,除了继承一个contextMenu我不能特别使用,因为每当我再次单击时,它就会消失。
回到我的问题,如果你检查了上面的第一个链接,你就会知道我想要实现什么,现在唯一的问题是,我不能按原样使用这段代码:
Point p = Button1.PointToScreen(Point.Empty);
p.Offset(0, (-1 * Form2.Height) - 15);
Form2.Location = p;
这段代码无论走到哪里都可以Form2
跟随Button1
。不幸的是,在我的 gMap 控件上,没有按钮。里面只有标记。
记住:这张地图是一个控件
那么,我怎样才能使用标记作为表单的父级,所以如果我尝试拖动地图,它会跟随.. 像这样的东西:
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;
}