【问题标题】:How to change mdi statusstrip label from a child form如何从子表单更改 mdi statusstrip 标签
【发布时间】:2011-04-16 09:14:07
【问题描述】:

我这几天一直在寻找解决方案,但找不到简单的答案。 我已经尝试了一些在互联网上找到的示例(代表、属性,甚至打破 OOP 公开所有内容),但这些似乎都不起作用。 有人可以为以下问题编写一个最简单的代码:

我有 MDI 父窗体和子窗体。 MDI 父窗体具有状态条标签。子窗体有一个按钮。我要做的就是在单击子表单按钮时更新 MDI 标签。

谢谢!!!

【问题讨论】:

    标签: c# label mdi statusstrip


    【解决方案1】:

    这不是最好的解决方案。但是,它是最简单的:

    1- 将状态条标签的访问修饰符更改为公共。

    2- 将父表单拆箱为其真实类型,以便能够访问标签:

    ((ActualMdiParentFormType) this.MdiParent).statusStripLabel.Text = "Value";
    

    【讨论】:

    • 一个“更干净”的解决方案是将一个成员添加到确实更改 label.text 的父表单
    • @DarkSquirrel42:添加您的评论作为答案。
    • 我第一次阅读时没有得到这个。但现在我明白了,我想写下我的答案... ((Form1)this.MdiParent).statusStripLabel.Text = "Value";这是我得到的。谢谢。
    【解决方案2】:

    还有另一种解决方案是在子窗口中创建一个事件并将父窗口注册到该事件。如果事件触发,将通知父窗口,并且在父窗口的相应事件处理程序中我们可以更新我们的控件。

    这是一种更像“MVVM”的方法。

    查看这些链接了解更多信息:

    Pass value between forms using events

    http://www.c-sharpcorner.com/uploadfile/yougerthen/mvvm-implementation-for-windows-forms/

    MVVM: Tutorial from start to finish?

    希望对你有帮助,

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多