12
votes

ANCHOR ToolstriPROGRESSBAR à droite de la barre d'état (Statusstrip)

J'ai un formulaire avec une barre d'état qui possède 2 ToolstripstatusLabel S suivi d'un ToolstriPROGRESSBAR . Je veux que la barre de progression soit toujours ancrée à la droite de la barre d'état - donc lorsque la fenêtre est redimensionnée / maximisée, il devrait déplacer automatiquement / Repeindre.

Je pensais que cela serait aussi simple que de régler le 1er (gauche aligné) Toolstripstatuslabel 'S ressort propriété sur true, donc lorsque le formulaire est redimensionné / augmenté de taille et il y a plus d'espace disponible, le 1er ToolstripstatusLabel remplirait cet espace et appuyez automatiquement sur le ToolstriProgressBar à droite.

mais non seulement cela ne fait pas seulement ce que je veux - le 1er Toolstripstatuslabel effectivement recouvre le 2e StatusLabel et le et le Progressbar , occupant essentiellement toute la barre d'état. Aucun des contrôles à outils à outils n'a d'ancrage ou même d'une minissize.

Alors, comment est-ce que je:

  1. Ancrez l'outil ToolstriProgressbar à droite de la barre d'état (Statusstrip)
  2. Mélangez des objets éléments fixes (par exemple, le ToolstripstatusLabel2 et ToolstriPROGRESSBAR ) avec une taille variable ToolstripstatusLabel1 qui augmente quand il y a un espace supplémentaire?

    Merci d'avance pour votre temps et votre aide!

    ~ im


0 commentaires

4 Réponses :


4
votes

Pour tous ceux qui peuvent être intéressés. La propriété d'ancrage est disponible, bien que dans le code uniquement (non in designer) ... mais dans tous les cas, cela ne fonctionne pas. J'ai laissé un bug dans Connect et obtenu le générique Willnotfix avec le message semblant indiquer qu'ils ne le considèrent que pour une révision majeure.

Pour une raison quelconque, la propriété "printemps" semble être erratique. Dans mes exemples ultra-simpistes, cela fonctionne, mais dans d'autres personnes où je fais de la peinture personnalisée (mais dans les formes d'enfant dans un MDIPARTENT, avec ce dernier HT ESTATUSTBAR) Ce n'est pas le cas. Dans ces cas, il existe toujours une solution de contournement simple, cependant, dans l'événement de redimensionnement de la forme MDIParent (qui a la barre d'état) modifie la taille de la société StatusLabel pour le rendre plus grand dans la même propriété que la largeur de la largeur, elle pousse donc la barre de progression au bord droit de la barre d'état


0 commentaires

17
votes

Il y a une solution simple. Faire un faux Toolstripstatuslabel, vider le .text et set .spring = TRUE;

Après cela, ajoutez votre boîte à outilsPROGRESSBAR. Assurez-vous que la commande est d'abord étiquette, puis progressez la barre.


0 commentaires

4
votes

Changer d'abord d'abord automatiquement sur FALSE

ToolstriPROGRESSBAR.Autosize = FALSE;

+ = stasstusstrip1_sizechanged;

modifie enfin la largeur de la barre dans le gestionnaire d'événements xxx


0 commentaires

9
votes
  1. Définissez la propriété StatussTrip, la propriété de layouttyle à HorizontaleStackwithithoverflow.
  2. Définissez l'alignement de la commande à droite pour le contrôle que vous souhaitez afficher à droite.

1 commentaires

Cela fonctionne, mais la propriété StassTsstrip est nommée "LayoutStyle", pas "layout".