gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 16:03:50 25 4
gpt4 key购买 nike

我还有一个问题..

考虑查看 THIS首先..

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

现在我正在研究这个很棒的 Control, GMaps其中在.NET framework中适配了google的API。
我的目标是在 google 的 API 上创建类似 infoWindow 的东西。所以我通过在上面的第一个链接上创建一个新表单(充当信息窗口)来自定义它。如果您看过 Gmaps.net,它确实是一张 map 。可拖动,平移缩放,可以添加标记/多边形..它缺少的一件事是它的文档+我想要的带有标记的信息窗口工具..
它只有它的“工具提示”,其中只能包含字符串。
例如 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 控件上,没有按钮。里面只有标记。
记住:这张 map 是一个控件 enter image description here

那么,我怎样才能将标记用作表单的父级,所以如果我尝试拖动 map ,它会跟随......像这样:

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;
}

最佳答案

 void mainMap_OnMapDrag()
{

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

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

关于c# - 如何在 activex 控件中使用/提取控件的标识,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20256176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com