| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Разработка Windows Forms > Как задать координаты новой формы при открытии? |
| Автор: graham 31.8.2009, 21:50 |
| Есть Form1 - основная и Form2, которую вызываю из Form1 через ShowModal(); При каждом новом вызове Form2 она появляется в новом месте. Хочу сделать чтобы положение Form2 зависело от Form1. Пробовал передать Form1->Location.X и Y и установить в конструкторе Form2 так же в X и Y. Пробовал через Point. Но всеравно не работает. Пробовал координаты устанавливать в событии OnShow, тоже н помогло. Срабатывает только в событии OnLoad, но не знаю как туда передать нужные координаты. |
| Автор: diadiavova 31.8.2009, 22:50 | ||
В форме 2 создай свойство типа Point. Перед вызовом формы передай этому свойству координаты, а в обработчике лоуда используй их.
Примерно так |
| Автор: Lunatic2009 31.8.2009, 23:05 | ||
| form2.StartPosition = FormStartPosition.CenterParent; или в дизайнере: StartPosition = CenterParent если нужно в коде, можно сделать что-то на подобии такого:
|
| Автор: graham 1.9.2009, 08:17 |
| спасибо, сделал дополнительное свойство, в которое передаю из конструктора. А уже его использую в OnLoad. Вот только так и не понял, почему нельзя сразу в конструкторе установить Location и не париться с дополнительными свойствами. Сразу так и не стал делать, думал что-то недопонимаю. |
| Автор: diadiavova 1.9.2009, 09:26 | ||
graham, на счёт StartPosition Lunatic2009 прав. Задай ему значение Manual и устанавливай Location.
|
| Автор: graham 1.9.2009, 12:04 | ||
После установки StartPosition = Manual поучилось сделать так:
теперь не надо никуда передавать координаты, все дело в StartPosition = Manual. Самое простое всегда навиду |