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