Já tentou centralizar um formulário MDI Child ? Um formulário MDI Child esta contido no formulário MDI que é o formulário container ou Pai. Para realizar a centralização usamos a propriedade Parent. Vamos lá...
- Inicie um novo projeto no VB e inclua um formulário do tipo MDI - opção Project|Add MDI form .
- Agora no formulário padrão altere sua propriedade MDI Child para True
- Se você executar o projeto agora irá obter a tela da figura ao lado: |
Vamos então centralizar o formulário - form1 .
Se você pensou em usar a propriedade - StartUpPosition - dançou !!! Veja na figura ao lado que a tentativa de atribuir a esta propriedade o valor : 2- CenterScreen gera um erro em tempo de desenho. Não dá.
Para resolver o problema vamos ter que criar uma função que faça o serviço. Esta função você pode incluir em um módulo do seu projeto ou no formulário MDI. Veja o código :
Private Sub Centraliza(Parent As Form, Child As Form) Dim iTop As Integer Dim iLeft As Integer If Parent.WindowState <> 0 Then Exit Sub iTop = ((Parent.Height - Child.Height) \ 2) iLeft = ((Parent.Width - Child.Width) \ 2) Child.Move iLeft, iTop End Sub |
A função recebe com parêmetros o nome do formulário MDI e o nome do formulário MDI Child que desejamos centralizar. A função somente verifica se o estado visual da janela MDI é diferente de 0 , ou seja , diferente do valor padrão . ( os outros valores possíveis são : 1- Minimizado 2-Maximized )
A sintaxe para WindowState é :
object.WindowState [= value]
Os valores possíveis são :
Constante | Valor | Descrição |
vbNormal | 0 | (Default) Normal. |
vbMinimized | 1 | Minimized (minimized to an icon) |
vbMaximized | 2 | Maximized (enlarged to maximum size) |
A seguir a função move o formulário - Child.Move iLeft, iTop - centralizando-o. Veja o resultado ao lado: |
Para chamar a função você pode usar o seguinte código: centraliza(MDIform1,form1)
Até a próxima... Bye...