Estoy tratando de alinear a la derecha un control en a StatusStrip
. ¿Cómo puedo hacer eso?
No veo una propiedad para establecer en los ToolStripItem
controles que especifique su alineación física en el padre StatusStrip
.
Estoy tratando de alinear a la derecha un control en a StatusStrip
. ¿Cómo puedo hacer eso?
No veo una propiedad para establecer en los ToolStripItem
controles que especifique su alineación física en el padre StatusStrip
.
Respuestas:
Lo encontré a través de foros de MSDN casi inmediatamente después de la publicación :)
Puede utilizar a ToolStripLabel
para pseudo alinear controles a la derecha estableciendo la Text
propiedad en string.Empty
y estableciendo la Spring
propiedad en true
. Esto hará que llene todo el espacio disponible y empuje todos los controles a la derecha del ToolStripLabel
superior.
StatusStrip.LayoutStyle == ToolStripLayoutStyle.Table
(que es el predeterminado)
Alignment
propiedad, porque no hizo nada en mi solicitud.
Como nota adicional, esto se debe al hecho de que en la API de Win32 una celda tiene un ancho fijo o llena el espacio restante -1
int statwidths[] = {100, -1};
SendMessage(hStatus, SB_SETPARTS, sizeof(statwidths)/sizeof(int), (LPARAM)statwidths);
SendMessage(hStatus, SB_SETTEXT, 0, (LPARAM)"Hi there :)");
Si la memoria no me falla, puede tener solo una celda de relleno (-1) por barra de estado.
También puede agregar una tercera celda en el medio y darle a esto la propiedad de relleno para obtener una barra de estado de apariencia más coherente. Consistente porque Mensajes tiene un recuadro a su izquierda derecha donde lo esperaría. Un poco como el disparo de mspaint que se encuentra en la página de MSDN para StatusBars
Sin embargo, me gusta la aplicación creativa: D
Puede mostrar el Button
al final del StatusStrip
utilizando la lógica siguiente.
ToolstripLabel
alStatusStrip
string.Empty
Padding
para elToolstripLabel
Por ejemplo:
this.toolStripStatusLabel1.Padding = new Padding((int)(this.Size.Width - 75), 0, 0, 0);
Descubrí que puede establecer el diseño de StatusStrip en HorizontalStackWithOverflow. Luego, para cada control en el StatusStrip que desee en el lado derecho, configure el control Alignment a Right.
Me gusta más esto ya que no necesita ningún control adicional o ficticio para alinear.
Encuentro una forma general de establecer la ubicación de un control en StatusStrip
. Puede mostrar el botón en cualquier posición del StatusStrip
mediante los pasos a continuación.
Establezca el texto como una cantidad adecuada de espacio como
toolStripStatusLabel1.Text = "";
Si el diseño no es lo que desea, vaya al paso 2 para cambiar la cantidad de espacio toolStripStatusLabel1.Text
; de lo contrario, se habrá hecho el trabajo.
Establezca la propiedad de la tira de herramientas RightToLeft en True.