Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从子窗体更改mdi statusstrip标签_C#_Label_Mdi_Statusstrip - Fatal编程技术网

C# 如何从子窗体更改mdi statusstrip标签

C# 如何从子窗体更改mdi statusstrip标签,c#,label,mdi,statusstrip,C#,Label,Mdi,Statusstrip,我已经寻找了几天的解决方案,但找不到简单的答案。 我尝试了一些在互联网上找到的例子(委托、属性,甚至破坏OOP使一切公开),但这些似乎都不起作用。 有人能为以下问题编写一个最简单的代码吗: 我有MDI父窗体和子窗体。MDI父窗体具有状态条标签。子窗体有一个按钮。我只想在点击子窗体按钮时更新MDI标签 谢谢 这不是最好的解决办法。但是,这是最简单的: 1-将状态条标签的访问修饰符更改为公共 2-将父窗体取消装箱到其实际类型,以便能够访问标签: ((ActualMdiParentFormType)

我已经寻找了几天的解决方案,但找不到简单的答案。 我尝试了一些在互联网上找到的例子(委托、属性,甚至破坏OOP使一切公开),但这些似乎都不起作用。 有人能为以下问题编写一个最简单的代码吗:

我有MDI父窗体和子窗体。MDI父窗体具有状态条标签。子窗体有一个按钮。我只想在点击子窗体按钮时更新MDI标签

谢谢

这不是最好的解决办法。但是,这是最简单的: 1-将状态条标签的访问修饰符更改为公共

2-将父窗体取消装箱到其实际类型,以便能够访问标签:

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

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

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

有关详细信息,请查看以下链接:


希望这会有所帮助,

一个“更干净”的解决方案是在父窗体中添加一个成员,该成员会更改标签。text@DarkSquirrel42:添加您的评论作为答案。我第一次阅读时没有收到此评论。但现在我明白了,我想写下我的答案。。。((Form1)this.mdipradent).statusStripLabel.Text=“Value”;这就是我得到的。谢谢