Размещение формы - центрируйте дочернюю форму в соответствии с родительской формой - PullRequest
0 голосов
/ 27 января 2010

Я делаю программу на vb.net (Visual Basic), которая имеет две формы. У меня есть одна как своего рода «основная» база, которая будет за всем. Тогда у меня есть еще одна дополнительная форма, которая должна идти поверх «основной» формы. Хорошо, я заставляю это работать, когда я показываю обе формы, но я хочу, чтобы меньшая (дополнительная) форма была сосредоточена на основной форме. Если вы хотите, чтобы это было легче понять, это маленькая коробка в большой коробке (все по центру и выровнены). Кто-нибудь знает, как это сделать?

Спасибо

Ответы [ 3 ]

1 голос
/ 27 января 2010

FormStartPosition.CenterParent - перечисление .NET, описанное здесь: http://msdn.microsoft.com/en-us/library/system.windows.forms.formstartposition.aspx

0 голосов
/ 27 января 2010

Я предполагаю, что основная форма создает дочернюю форму.

Когда основная форма (A) создает маленькую форму (B), она должна дать B ссылку на себя (то есть, B должен принимать параметр конструктора типа Form, называется что-то вроде backgroundForm, и передать A).

Теперь B может установить свою позицию в событии OnLoad следующим образом:
Координата x: позиция x A плюс 1/2 ширины A минус 1/2 ширины B
y-координата: позиция y A плюс 1/2 высоты A минус 1/2 высоты B

Кроме того, B может подписаться на события в A, например, когда окно перемещается или изменяется.

0 голосов
/ 27 января 2010

Похоже, вы ищете интерфейс MDI для презентации формы. Если так, то не могли бы вы попробовать:

childForm.StartPosition = FormStartPosition.CenterParent;

Это отцентрирует его на экране. Если нет, вы можете попытаться центрировать его явно, как показано здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...