如何在Windows窗体中更新StatusStrip

时间:2012-11-11 22:47:15

标签: c# winforms .net-4.5

我正在尝试更新Windows Forms应用程序中的状态条,但没有显示任何内容。这是我的代码:

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

2 个答案:

答案 0 :(得分:46)

enter image description here

您需要向ToolStripStatusLabel添加StatusStrip

然后设置标签的文本(您需要执行statusstrip.Refresh,因为状态标签上没有刷新)。

Text上的StatusStrip属性来自StatusStrip继承ToolStrip(后者继承Control),但由于ToolStrips的性质而没有视觉效果。这可能有点令人困惑。

示例:

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

答案 1 :(得分:0)

我遇到了类似的问题,我看到StatusStrip控件但在父控件中显然没有ToolStripStatusLabel项。甚至没有显示ToolStripStatusLabel项目的初始文本(例如,“就绪”)。标签项Spring设置为trueTextAlign设置为TopLeft

通过将StatusStrip控件的LayoutStyle设置为Flow并将ToolStripStatusLabelOverflow设置为Never,问题得以解决。当父控件的布局样式设置为Table时,显然隐藏了标签项。