【问题标题】:How to update the text shown on a status strip's label如何更新状态条标签上显示的文本
【发布时间】:2013-10-01 23:07:56
【问题描述】:

我在主表单上创建了一个状态条,并在其中创建了一个标签。我正在其中打开另一个表单(MdiContainer 是真的)。为了打开,我在构造函数中传递主要形式的对象,即 this。我正在更新标签的文本,但它没有得到更新。 我也尝试过无效功能。

【问题讨论】:

  • 您的答案隐藏在 14 个未接受的问题中 :-)

标签: c# .net winforms


【解决方案1】:

我也遇到了这个问题。解决方法是添加一行代码来触发事件(见下面的第二行)

MainForm.mainStatusLabel.Text = "Importing data file" //see next line
Application.DoEvents()

我不完全理解为什么会这样,但我的猜测是 VB 不会在方法中间处理应用程序范围的事件,除非你告诉它。当您更改文本属性时,这是一个事件。所以 VB 会(我猜)等到方法结束后再处理事件——除非你专门告诉它用 Application.DoEvents() 处理所有事件

【讨论】:

  • 调用Update() 会更新表单上的所有控件。
【解决方案2】:

不要将 MainForm 的实例传递给 ChildForm,而是在 ChildForm 中定义一个自定义事件,使用要显示的消息(作为参数)引发事件,然后在 MainForm 和事件处理程序中订阅事件用消息更新控制文本。您可能还需要检查 Control.InvokeRequired。

【讨论】:

    【解决方案3】:

    我也遇到了问题,在我的情况下,因为文本太长而无法显示(包含异常消息。)我将 SizingGrip 属性设置为“False”,所以我的文本被显示(但被中继)。

    【讨论】:

      猜你喜欢
      • 2020-02-01
      • 2020-09-19
      • 1970-01-01
      • 1970-01-01
      • 2012-04-13
      • 1970-01-01
      • 1970-01-01
      • 2016-08-04
      • 1970-01-01
      相关资源
      最近更新 更多