2012-03-01 1 views
1

С Windows Forms на мультимониторных системах можно установить расположение формы на ShowDialog() для чего-то определенного, кроме перечислений, найденных в пределах Перечислений StartPosition? Я пробовал перечисление с объявлением . Местонахождение Свойство, но это будет выбрать местоположение на основном дисплее для Windows, что необязательно является окном вызывающего.Выбор отображения расположения окон на ShowDialog()

Моим оптимальным решением было бы найти форму по отношению к указателю мыши во время вызова функции.

ответ

1

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

  1. Используйте класс курсора, чтобы получить позицию. Вы можете попробовать this.Location = new Point(Cursor.Position.X, Cursor.Position.Y); или что-то подобное, если оно доступно на вашем языке (я предполагаю, что так).

  2. Вы можете использовать функцию GetCursorPos. Если вы используете C# или VB, вам придется определить его. Более подробную информацию можно найти на PInvoke: http://www.pinvoke.net/default.aspx/user32.getcursorpos

+0

Cursor.Position.X и Cursor.Position.Y – sammarcow

+0

Вы правы, изменили его. Изменить: вы можете сделать его немного меньше, просто установив 'this.Location = Cursor.Position;' Поскольку свойство position должно быть точкой. – ozdrgnaDiies

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