J'essaie d'aligner à droite un contrôle dans un fichier StatusStrip
. Comment puis je faire ça?
Je ne vois pas de propriété à définir sur les ToolStripItem
contrôles qui spécifie leur alignement physique sur le parent StatusStrip
.
c#
winforms
statusstrip
Eric Schoonover
la source
la source
Réponses:
Je l'ai trouvé via les forums MSDN presque immédiatement après la publication :)
Vous pouvez utiliser un
ToolStripLabel
pseudo contrôle d'alignement à droite en définissant laText
propriété surstring.Empty
et en définissant laSpring
propriété surtrue
. Cela le fera remplir tout l'espace disponible et poussera toutes les commandes à droite duToolStripLabel
dessus.la source
StatusStrip.LayoutStyle == ToolStripLayoutStyle.Table
(qui est la valeur par défaut)Alignment
propriété, car elle n'a rien fait dans ma demande.Pour moi, cela a pris deux étapes simples:
MyRightIntendedToolStripItem.Alignment
surRight
MyStatusStrip.LayoutStyle
surHorizontalStackWithOverflow
la source
En outre, cela est dû au fait que dans l'API Win32, une cellule a une largeur fixe ou remplit l'espace restant -1
Si ma mémoire est bonne, vous ne pouvez avoir qu'une seule cellule de remplissage (-1) par barre d'état.
Vous pouvez également ajouter une troisième cellule du milieu et lui donner la propriété fill pour obtenir une barre d'état plus cohérente. Cohérent car Messages a un encart à sa gauche à droite où vous vous attendez. Un peu comme le cliché mspaint trouvé sur la page MSDN pour StatusBars
J'aime bien l'approbation créative: D
la source
Vous pouvez afficher le
Button
à la fin deStatusStrip
en utilisant la logique ci-dessous.ToolstripLabel
à laStatusStrip
string.Empty
Padding
pour leToolstripLabel
Par exemple:
la source
Conservez une étiquette Toolstrip, définissez la propriété Spring sur true et pour le texte d'alignement d'étiquette dans BottomLeft
la source
J'ai trouvé que vous pouvez définir la disposition StatusStrip sur HorizontalStackWithOverflow. Ensuite, pour chaque contrôle sur le StatusStrip que vous souhaitez sur le côté droit, définissez l'alignement de contrôle sur Droite.
J'aime mieux cela car vous n'avez besoin d'aucune commande supplémentaire ou factice pour vous aligner.
la source
Je trouve un moyen général de définir l'emplacement d'un contrôle dans
StatusStrip
. Vous pouvez afficher le bouton à n'importe quelle position dans leStatusStrip
en suivant les étapes ci-dessous.Définissez le texte comme une quantité d'espace appropriée comme
Si la mise en page n'est pas ce que vous voulez, passez à l'étape 2 pour modifier la quantité d'espace
toolStripStatusLabel1.Text
, sinon le travail a été fait.la source
Définissez la propriété de la bande d'outils RightToLeft sur True.
la source