2010-05-20 1 views
2

У меня проблема, я не могу решить.CF - Как получить положение мыши при появлении ContextMenu?

На мой взгляд (это показывает карту), я создал contextMenu. При вызове контекстного меню мне нужно получить позицию, по которой пользователь нажал на карту.

Вот моя проблема:

В представлении я уже OnMouseDown событие, которое получает мне координаты, где щелкнул пользователь.

private void MapView_MouseDown(object sender, MouseEventArgs e) 
    { 
     this.lastMouseDownX = e.X; 
     this.lastMouseDownY = e.Y; 
    } 

Когда Контекстный вызываются мне нужно те же данные, но проблема в том, что Контекстный имеет только EventArgs, что Dont сохранить данные мне нужно. Кроме того ... contextMenu вызывается, когда пользователь нажимает и удерживает мышь в течение секунды, а при вызове кода не вводится событие onMouseDown! Он просто переходит в всплывающее событие в моем контекстном меню ....

Я попытался поместить это в свое всплывающее событие, но координаты не в порядке. Координата Y находится вне диаграммы.

private void servicesContextMenu_Popup(object sender, EventArgs e) 
{ 
    this.lastMouseDownX = Control.MousePosition.X; 
    this.lastMouseDownX = Control.MousePosition.Y; 
} 

Помощь?

+0

Я вычислил разницу. В Control.MousePosition.Y значение всегда на 26px больше, чем фактическая координата Y. Координата X всегда правильная! Имеет ли это что-то делать с заголовком? – no9

ответ

Смежные вопросы