主表单上的状态消息

时间:2011-07-12 22:00:41

标签: c# .net winforms c#-4.0

我有多个基于表单的应用程序,因为我有一些输入表单,如果在输入表单填写并单击提交按钮,那么我想显示主表单状态中的提交状态 - 条

我这样使用但不能正常工作

Main status = new Main();
status.workStatusStrip.Text = "Submitted Successfully";

示例代码首选..

2 个答案:

答案 0 :(得分:3)

这会对你有所帮助

WindowsFormsApplication1
{
     public partial class Form1 : Form
    {
        static Label statusMessageLabel;
        public static string StatusText { set { statusMessageLabel.Text = value; } }

        public Form1()
        {
            InitializeComponent();
            statusMessageLabel = label1;

            // from anywhere ->
            Form1.StatusText = "a message";
        }
    }

}

答案 1 :(得分:2)

您有两个选项,无法从您的问题中选择要选择的选项。

首先:

让你的'数据输入表'派生自一些定义状态变化委托的基类,以及像这样的委托的事件

public delegate void StatusChange(string Status);
public event StatusChange OnStatusChange;

现在,在您的主窗体中,为每个像这样创建的数据输入表单订阅该事件

SomeDataEntry de = new SomeDataEntry();
de.OnStatusChange += StatusChanger;
de.Show(); //  or whatever
表单中的

if (OnStatusChange!=null) {
    OnStatusChange("status text");
}

并以主要形式执行

void StatusChanger(string Status)
{
    status.Text=Status;
}

第二

像Chandan建议做的事情,但请不要使成员静态,而是有一个接口,一个成员,从中派生,将接口传递给数据输入表单,并调用其方法来更新状态文本数据录入表格。