【问题标题】:ToolStripStatusLabel is not displayed after the window be restored(after minimize)ToolStripStatusLabel 窗口恢复后不显示(最小化后)
【发布时间】:2017-05-19 12:02:38
【问题描述】:

我有一个简单的 StatusStrip,里面有一个 ToolStripStatusLabel。标签中的文本可能很长,所以我更喜欢将其显示为剪切。
我设置了 ToolStripStatusLabel 属性:Spring=trueTextAlign=MiddleLeft。我不想设置 StatusStrip 的属性LayoutStyle = ToolStripLayoutStyle.Flow,因为ToolStripLayoutStyle.Flow 的文本将被三角形覆盖(用于调整大小)。

Text 属性直接设置在InitializeComonents() 之后,并按预期显示 - 已剪切。
如果我最小化(到任务栏)然后恢复窗口,则根本不会显示文本。如果我把窗口加宽,我可以看到文本,如果我把窗口调到初始大小,我仍然可以看到文本,按预期剪切。

我有并将发布我的解决方案,但我想问你,你有没有优雅的解决方案?

【问题讨论】:

  • StatusStrip 有known weirdo painting problems。只有发布重现代码才能获得有用的答案。
  • @HansPassant 感谢您的回复。我真的不知道我必须发布哪个代码(设计器代码?),所有事情都需要重现我在问题中指出的问题。只需将带有剪切标签的窗口最小化并恢复即可。

标签: c# winforms statusstrip


【解决方案1】:

我找到的解决方案非常简单。只需处理窗口的恢复事件(没有这样的事件,但有一个解决方法: Is there an event raised in C# when a window is restored?) 并重置 ToolStripStatusLabel 中的文本:

var txt = tslabel.Text;
tslabel.Text = " ";
tslabel.Text = txt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-15
    • 1970-01-01
    • 2022-01-18
    • 2017-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多