C# 更新状态栏消息的最佳方式是什么?

C# 更新状态栏消息的最佳方式是什么?,c#,statusbar,C#,Statusbar,我想知道在MDI应用程序中更新statusbar消息的最佳方法是什么。我遇到过在子窗体的父窗体的状态栏中显示消息的代码,但我想根据用户的操作更新消息。 以父形式 private void Form1_Load(object sender, EventArgs e) { FrmShiftManagement newMDIChild = new FrmShiftManagement(); newMDIChild.MdiParent = this;

我想知道在MDI应用程序中更新statusbar消息的最佳方法是什么。我遇到过在子窗体的父窗体的状态栏中显示消息的代码,但我想根据用户的操作更新消息。 以父形式

private void Form1_Load(object sender, EventArgs e)
    {
        FrmShiftManagement newMDIChild = new FrmShiftManagement();
        newMDIChild.MdiParent = this;
        this.LayoutMdi(MdiLayout.Cascade);
        newMDIChild.Show();

        StatusMessage.Text = "Ready";

        //toolstriplabel1.Alignment = ToolStripItemAlignment.Right;
    }



 public void ShowStatus(string status)
    {
        this.StatusMessage.Text = status;
        Application.DoEvents();
    }
以儿童形式

((FrmTRMS)this.MdiParent).ShowStatus("Item(s) Saved");
保存数据或执行任何操作时,此代码工作正常。现在,在保存或删除数据后,如何将父窗体原始消息设置回状态栏。

您可以执行以下操作:

string oldMsg = "";
public void ShowStatus(string status)
{
    oldMsg = this.StatusMessage.Text;
    this.StatusMessage.Text = status;
    this.StatusMessage.Invalidate(); // To force status bar redraw
    this.StatusMessage.Refresh();
}

public void RestoreStatus()
{
    this.StatusMessage.Text = oldMsg;
}

并在子窗体上使用
RestoreStatus()
,或者在您愿意的任何时候使用。

我已经找到了在状态栏中显示从子窗体到父窗体的消息的解决方案。我已经浏览了此链接。。
这非常有帮助。

您到底有什么困难?学员和活动应该会帮助您!您现在保存后似乎正在更改它(基于使用的过去时),我不喜欢
Application.DoEvents()
。这是干什么用的?嗨..我试过使用你的代码,但它没有显示StatusMessage的刷新方法..@Nazima:Refresh()在每个窗口控件中,所以如果StatusMessage是状态栏,它应该有刷新方法。