Estou tentando alinhar corretamente um controle em a StatusStrip
. Como eu posso fazer isso?
Não vejo uma propriedade para definir nos ToolStripItem
controles que especifica seu alinhamento físico no pai StatusStrip
.
c#
winforms
statusstrip
Eric Schoonover
fonte
fonte
Respostas:
Encontrei nos fóruns do MSDN quase imediatamente após a postagem :)
Você pode usar um
ToolStripLabel
para alinhar à direita os controles definindo aText
propriedade comostring.Empty
eSpring
comotrue
. Isso fará com que ele preencha todo o espaço disponível e empurre todos os controles para a direita doToolStripLabel
over.fonte
StatusStrip.LayoutStyle == ToolStripLayoutStyle.Table
(que é o padrão)Alignment
propriedade faz, porque ela não fez nada em meu aplicativo.Para mim, foram necessários dois passos simples:
MyRightIntendedToolStripItem.Alignment
paraRight
MyStatusStrip.LayoutStyle
paraHorizontalStackWithOverflow
fonte
Como observação adicional, isso se deve ao fato de que na API do Win32 uma célula tem largura fixa ou preenche o espaço restante -1
Se a memória não me falha, você pode ter apenas uma célula de preenchimento (-1) por barra de status.
Você também pode adicionar uma terceira célula do meio e dar a ela a propriedade fill para obter uma barra de status de aparência mais consistente. Consistente porque o Mensagens tem uma inserção à direita, onde você esperava. Um pouco como a foto do mspaint encontrada na página do MSDN para StatusBars
Eu gosto da avaliação do criativo: D
fonte
Você pode exibir o
Button
no final deStatusStrip
usando a lógica abaixo.ToolstripLabel
aoStatusStrip
string.Empty
Padding
para oToolstripLabel
Por exemplo:
fonte
Mantenha um rótulo de Toolstrip, defina a propriedade Spring como true e alinhe o texto do rótulo em BottomLeft
fonte
Descobri que você pode definir o Layout de StatusStrip como HorizontalStackWithOverflow. Em seguida, para cada controle no StatusStrip que você deseja no lado direito, defina o Alinhamento de controle como Direito.
Eu gosto mais disso, pois você não precisa de nenhum controle extra ou fictício para alinhar.
fonte
Encontro uma maneira geral de definir a localização de um controle em
StatusStrip
. Você pode exibir o botão em qualquer posição noStatusStrip
usando as etapas abaixo.Defina o texto como uma quantidade adequada de espaço, como
Se o layout não for o que você deseja, vá para a etapa 2 para alterar a quantidade de espaço
toolStripStatusLabel1.Text
, caso contrário, o trabalho foi feito.fonte
Defina a propriedade de faixa da ferramenta RightToLeft como True.
fonte