я еще одна проблема ..как использовать/экстракт идентичности управления внутри элемента управления ActiveX
Рассмотрим глядя на THIS первый ..
на моих ранних проблем, мне нужно перетащить кнопку, и форму в отношении того, как я перетаскиваю/перемещаю pictureBox. Все элементы управления находятся внутри .NET.
Теперь я работаю над этим замечательным Control, GMaps, в котором адаптируется API Google в .NET framework.
Моя цель - создать что-то вроде infoWindow в API Google. поэтому я приступил к его настройке, создав новую форму (действуя как инфо-окно) по первой ссылке выше. Если вы видели Gmaps.net, это действительно карта. Draggable, pan для увеличения, может добавлять маркеры/полигоны. Одной вещью, которой ему не хватает, является ее документация + инструмент infoWindow, который я хочу с маркером.
У него есть только «подсказка», в которой может быть только строка.
ect 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 нет кнопки. есть только маркер внутри.
Помните: эта карта является контроль
так, как я могу использовать маркер в качестве родителя формы, так что если я пытаюсь перетащить карту, то .. что-то вроде этого:
Point p = marker.PointToScreen(Point.Empty);
p.Offset(0, (-1 * Form2.Height) - 15);
Form2.Location = p;
UPDATE Я использовал этот код, никаких ошибок, не работает ..
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;
}
Это зависит от вашего 'marker', если он поддерживает какое-либо свойство, чтобы отрегулировать его положение, вы можете сделать то же самое с ним, как и с кнопкой. Попробуйте просмотреть все его элементы в окне «Обозреватель объектов» или всплывающее окно intellisense, чтобы узнать, есть ли какой-либо член (свойство или метод), который вы можете использовать для поиска этого маркера. –
он говорит, не может неявно преобразовать точку gmaps.net в system.drawing.point. значение, я думаю, что gmaps распознает только точки latLong. но позвольте мне проверить. – AdorableVB
см. Обновление .. скажите, если вам что-то нужно. @KingKing – AdorableVB