tela - tag c#




Centralizar controles dentro de um formulário no.NET(WinForms)? (6)

Esta questão já tem uma resposta aqui:

Estou tentando centralizar um controle de tamanho fixo em um formulário.

Por interesse, existe uma maneira não idiota de fazer isso? O que eu realmente quero é algo análogo à propriedade css text-align.

No momento, estou definindo a propriedade de preenchimento do formulário adjacente para um tamanho adequado e definindo a propriedade Dock do controle para preencher.


Desde que você não diga se o formulário pode redimensionar ou não, existe uma maneira fácil se você não se importa com o redimensionamento (se você se importa, vá com a solução Mitch Wheats):

Selecione o controle -> Formatar (opção de menu) -> Centro na janela -> Horizontalmente ou verticalmente


Envolve a globalização (bem, suponho que você poderia obter uma calculadora e calcular), mas apenas insira o dito controle no formulário e então remova qualquer ancoragem (âncora = Nenhuma).


Para centralizar o botão no painel o em outro recipiente, siga este passo:

  1. Em tempo de design, defina a posição
  2. Vá para as propriedades Âncora do botão e defina esse valor como a imagem a seguir


Você pode colocar o controle que deseja centralizar dentro de um painel e definir os valores de preenchimento esquerdo e direito para algo maior que o padrão. Contanto que eles sejam iguais e seu controle esteja ancorado aos lados do Painel, ele aparecerá centralizado naquele Painel. Em seguida, você pode ancorar o painel do contêiner ao pai, conforme necessário.


você pode colocar todos os seus controles no painel e depois escrever um código para mover o painel para o centro do formulário.

panelMain.Location = 
    new Point(ClientSize.Width / 2 - panelMain.Size.Width / 2, 
              ClientSize.Height / 2 - panelMain.Size.Height / 2);

panelMain.Anchor = AnchorStyles.None;

Além disso, se você quiser alinhá-lo ao centro de outro controle:

//The "ctrlParent" is the one on which you want to align "ctrlToCenter".
//"ctrlParent" can be your "form name" or any other control such as "grid name" and etc.
ctrlToCenter.Parent = ctrlParent;

ctrlToCenter.Left = (ctrlToCenter.Parent.Width - ctrlToCenter.Width) / 2;
ctrlToCenter.Top = (ctrlToCenter.Parent.Height - ctrlToCenter.Height) / 2;




center-align