J'essaie d'aligner à droite un contrôle dans un fichier StatusStrip
. Comment puis-je le faire ?
Je ne vois pas de propriété à définir sur ToolStripItem
qui spécifie leur alignement physique sur le parent StatusStrip
.
J'essaie d'aligner à droite un contrôle dans un fichier StatusStrip
. Comment puis-je le faire ?
Je ne vois pas de propriété à définir sur ToolStripItem
qui spécifie leur alignement physique sur le parent StatusStrip
.
Je l'ai trouvé via les forums MSDN presque immédiatement après l'avoir posté :)
Vous pouvez utiliser un ToolStripLabel
pour aligner pseudo-droite les contrôles en définissant le Text
à la propriété string.Empty
et la mise en place de la Spring
à la propriété true
. Cela aura pour effet de remplir tout l'espace disponible et de pousser toutes les commandes à droite de l'écran. ToolStripLabel
sur.
Cela va fonctionner UNIQUEMENT si StatusStrip.LayoutStyle == ToolStripLayoutStyle.Table
(qui est celui par défaut)
J'aimerais qu'il y ait une "vraie" façon de faire, mais cela fonctionne donc merci. Je me demande ce que le Alignment
parce qu'elle n'a rien fait dans mon application.
En outre, cela est dû au fait que dans l'API Win32, une cellule est soit de largeur fixe, soit remplit l'espace restant -1.
int statwidths[] = {100, -1};
SendMessage(hStatus, SB_SETPARTS, sizeof(statwidths)/sizeof(int), (LPARAM)statwidths);
SendMessage(hStatus, SB_SETTEXT, 0, (LPARAM)"Hi there :)");
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 centrale et lui attribuer la propriété fill pour obtenir une barre d'état plus cohérente. Cohérent parce que Messages a un encart à sa gauche, là où on l'attend. Un peu comme le cliché mspaint que l'on trouve sur le site de la Page MSDN pour StatusBars
J'aime l'approche créative cependant :D
Vous pouvez afficher le Button
à la fin de la StatusStrip
en utilisant la logique ci-dessous.
ToolstripLabel
à la StatusStrip
string.Empty
Padding
pour le ToolstripLabel
Par exemple :
this.toolStripStatusLabel1.Padding = new Padding((int)(this.Size.Width - 75), 0, 0, 0);
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
4 votes
Créez un élément de la barre d'outils d'étiquettes avec la propriété Spring définie sur true. Détails : dotnetperls.com/statusstrip (P.S. Oui, je sais que c'est une vieille question).