Comment mettre à jour StatusStrip dans les Windows Forms
Je suis en train de mettre à jour la barre d'état dans mon Windows Forms application, mais rien n'est affiché. Voici mon code:
private void textBox1_TextChanged(object sender, EventArgs e)
{
lines = Regex.Split(textBox1.Text.Trim(), "\r\n");
lineCount = lines.Count();
statusStrip1.Text = "Lines: " + lineCount;
statusStrip1.Refresh();
}
Vous devez vous connecter pour publier un commentaire.
Vous aurez besoin d'ajouter un
ToolStripStatusLabel
à laStatusStrip
.Ensuite définir le texte de l'étiquette à la place (vous devez faire un
statusstrip.Refresh
comme il n'y a pas de rafraichissement sur le statut de l'étiquette).La
Text
bien sur laStatusStrip
vient de la StatusStrip hériteToolStrip
(qui hérite deControl
), mais n'a aucun effet visuel en raison de la nature de ToolStrips. Il peut être un peu déroutant.Exemple:
multi-threading
il faut InvokeRequired ou Tâches TPL, à mon humble avis.J'ai rencontré un problème similaire, où je vois un
StatusStrip
contrôle, mais apparemment sansToolStripStatusLabel
élément dans le contrôle parent. Même pas le texte initial de laToolStripStatusLabel
élément (par exemple, "Prêt") est affiché. L'étiquette de l'élément deSpring
a été mis àtrue
etTextAlign
àTopLeft
.Le problème a été résolu par la mise en au StatusStrip du contrôle
LayoutStyle
àFlow
et laToolStripStatusLabel
élémentOverflow
àNever
. Apparemment, l'étiquette de l'élément était caché quand le parent de contrôle de la mise en page de style a été mis àTable
.