Eu preciso de uma maneira de centralizar a janela atual. Por exemplo, se um usuário aperta um botão, quero que a janela se centralize na tela. Sei que você pode usar a propriedade startposition, mas não consigo descobrir uma maneira de usá-la, exceto quando o aplicativo é iniciado pela primeira vez. Então, como centralizo o formulário na tela?
129
Respostas:
Use o método Form.CenterToScreen () .
fonte
Usando a janela Propriedade
Selecione o formulário → vá para a janela de propriedades → selecione "posição inicial" → selecione o local que desejar.
Programaticamente
Form form1 = new Form(); form1.StartPosition = FormStartPosition.CenterScreen; form1.ShowDialog();
Nota: Não chame diretamente Form.CenterToScreen () a partir do seu código. Leia aqui .
fonte
Uma única linha:
fonte
Screen screen = Screen.FromControl(this);
aqui.Screen.FromControl(this)
mas continuo usandoPrimaryScreen
. (Eu estou desenvolvendo uma aplicação sob restrição hardware) :-)No Windows Forms:
No WPF:
É tudo o que você precisa fazer ...
fonte
Se você deseja centralizar suas janelas durante o tempo de execução, use o código abaixo, copie-o para o seu aplicativo:
E, finalmente, chame o método acima para fazê-lo funcionar:
fonte
this.Location = Screen.AllScreens[0].WorkingArea.Location;
antes. Outras respostas não funcionam no caso de mover o aplicativo ao usar várias telas.Centralizando um formulário no tempo de execução 1. Defina a
seguinte propriedade do Form:
-> StartPosition: CenterScreen
-> WindowState: Normal
Isso centralizará o formulário no tempo de execução, mas se o tamanho do formulário for maior que o esperado, execute o segundo passo.
2. Adicione tamanho personalizado após InitializeComponent ();
fonte
Centraliza qualquer janela na qual você possa controlar
fonte
Usa isto:
fonte
Use a propriedade Location do formulário. Coloque-o no ponto superior esquerdo desejado
x desejado (largura da área de trabalho - form_witdh) / 2
desejado y = (altura da mesa - da altura) / 2
fonte
Você pode usar o
Screen.PrimaryScreen.Bounds
para recuperar o tamanho do monitor primário (ou inspecionar oScreen
objeto para recuperar todos os monitores). Use aqueles comMyForms.Bounds
para descobrir onde colocar seu formulário.fonte
Pode não ser completamente relevante para a questão. Mas talvez possa ajudar alguém.
A tela central não funciona acima para mim. A razão era que eu estava adicionando controles dinamicamente ao formulário. Tecnicamente, quando centralizado, estava correto, com base no formulário antes de adicionar os controles.
Então aqui estava a minha solução. (Deve funcionar com os dois cenários)
Então, você notará que estou usando "PreferredSize" em vez de apenas Altura / Largura. O tamanho preferencial manterá o valor do formulário após adicionar os controles. Onde Altura / Largura não.
Espero que isso ajude alguém.
Felicidades
fonte
No caso de vários monitores e Se você preferir centrar-se no monitor / tela correto, poderá tentar estas linhas:
fonte