37

Windowsフォームアプリケーションでステータスストリップを更新しようとしていますが、何も表示されません。これが私のコードです:

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

2 に答える 2

52

ここに画像の説明を入力してください

にを追加する必要がありToolStripStatusLabelますStatusStrip

statusstrip.Refresh次に、代わりにラベルのテキストを設定します(ステータスラベルは更新されないため、を実行する必要があります)。

TextプロパティStatusStripはStatusStripの継承ToolStrip(次に継承Control)から取得されますが、ToolStripの性質上視覚効果はありません。少し混乱する可能性があります。

例:

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();
}
于 2012-11-11T22:54:00.253 に答える
0

同様の問題が発生しました。コントロールは表示されていますが、親コントロール内にアイテムStatusStripがないようです。ToolStripStatusLabelアイテムの最初のテキストToolStripStatusLabel(「準備完了」など)も表示されませんでした。ラベルアイテムのはとSpringに設定されtrueましTextAlignTopLeft

この問題は、StatusStripコントロールをに設定し、アイテムをに設定することで解決LayoutStyleFlowToolStripStatusLabelましOverflowNever。親コントロールのレイアウトスタイルがに設定されている場合、ラベルアイテムは非表示になっているようTableです。

于 2018-02-16T01:58:34.283 に答える