J'essaie de mettre à jour la bande d'état dans mon Windows Forms application, mais rien ne s'affiche. 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 devrez ajouter une ToolStripStatusLabel
à la StatusStrip
.
Ensuite, définissez le texte de l'étiquette à la place (vous devez créer un statusstrip.Refresh
car il n'y a pas d'actualisation sur l'étiquette d'état).
La propriété Text
sur la StatusStrip
provient de StatusStrip, hérite de ToolStrip
(qui hérite à son tour de Control
), mais n'a aucun effet visuel en raison de la nature de ToolStrips. Cela peut être un peu déroutant.
Exemple:
private void textBox1_TextChanged(object sender, EventArgs e)
{
//...
lines = Regex.Split(textBox1.Text.Trim(), "\r\n");
lineCount = lines.Count();
//this label is added in visual editor using the default name
ToolStripStatusLabel1.Text = string.Format("Lines: {0}", lineCount);
StatusStrip1.Refresh();
}
J'ai rencontré un problème similaire, où je vois un contrôle StatusStrip
mais apparemment sans élément ToolStripStatusLabel
dans le contrôle parent. Même le texte initial de l'élément ToolStripStatusLabel
(par exemple, "Prêt") n'était affiché. Spring
de l'élément d'étiquette a été défini sur true
et TextAlign
sur TopLeft
.
Le problème a été résolu en définissant la variable LayoutStyle
du contrôle StatusStrip sur Flow
et celle de l'élément ToolStripStatusLabel
sur Overflow
sur Never
. Apparemment, l'élément d'étiquette était masqué lorsque le style de présentation du contrôle parent était défini sur Table
.