web-dev-qa-db-fra.com

Comment mettre à jour StatusStrip dans Windows Forms

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();
}
34
Luke101

 enter image description here

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();
}
46
user1693593

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.

0
H Yoo