这是最简单的事情,但我无法更新状态栏上的文字。我刚开始使用c#但找不到解决方案。我试过下面的代码:
的MdiParent
public void StutasText(string text)
{
toolStripStatusLabel.Text = text;
}
子表格
MDIParent1 obj = new MDIParent1();
obj.StutasText("Hello world");
obj.Refresh();
它未在状态栏中显示状态文本。 我哪里出错了?
答案 0 :(得分:2)
((mdiMain)MdiParent).toolStripStatusLabel.Text = "My Text";
//but you must change the modifier property of toolStripStatusLabel to public etc
答案 1 :(得分:1)
您正在创建MDIParent1的新实例,而不是使用显示的实例/您的子表单所属的实例。
您可以尝试使用
this.MdiParent
而不是
new MDIParent1()
答案 2 :(得分:1)
在MDI Parent表单中,我假设您有toolStripStatusLabel1。如果您没有,可以通过单击menuStrip控件中的小黑箭头来添加它。
选项1
在您的MDI Parent(我们假设,frmMain是MDI Parent表单)表单中,您有StatusStrip,转到frmMain.Designer.cs文件并找到该地点
private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel1;
制作本,
public System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel1;
然后,您可以从子页面访问以下内容。
ToolStripStatusLabel statusStrip=((frmMain)(frmMdiChild.MdiParent)).toolStripStatusLabel1
选项2
声明一个公共属性,它将返回toolStripStatusLabel1控件或方法,您可以在其中设置MDI父窗体中toolStripStatusLabel1的text属性。如果返回menuStrip1本身,则可以访问该控件的所有属性。如果声明一个方法,该方法将设置toolStripStatusLabel1的text属性,那么您只能设置文本。根据您的要求决定您的需求。
返回menuStrip1控件的实现。
public ToolStripStatusLabel GetStatusBar
{
get
{
return this.toolStripStatusLabel1;
}
}
然后从您的子页面中,您可以使用
ToolStripStatusLabel statusStrip=((frmMain)(frmMdiChild.MdiParent)).GetStatusBar;
选项3
为了使它更漂亮一点,你可以在一个公共类中声明一个方法。然后,您可以在其他子表单中重复使用它。
public void ShowStatusbarMessage(Form frmMdiChild, string message, NotifierType notificationType)
{
ToolStripStatusLabel statusStrip=((frmMain)(frmMdiChild.MdiParent)).GetStatusBar;
statusStrip.Text = message;
if (notificationType == NotifierType.SuccessInfo)
{
statusStrip.ForeColor = System.Drawing.Color.Green;
}
else if (notificationType == NotifierType.Warning)
{
statusStrip.ForeColor = System.Drawing.Color.Orange;
}
else
{
statusStrip.ForeColor = System.Drawing.Color.Red;
}
}
这里,NotifierType是一个枚举
答案 3 :(得分:0)
((frmMDI)this.MdiParent).yourcontrol.yourproperty = yourvalue; frmMDI是MDI表单的唯一名称。
答案 4 :(得分:0)
<强>第一强> 在“mdi parent name”.Designer.cs中,将类型或成员 private 更改为 public
第二次在您的代码中添加下一个代码
(("mdi parent name")MdiParent).toolStripStatusLabel.Text = "your text";