【问题标题】:status message on main form主窗体上的状态消息
【发布时间】:2011-07-12 22:00:41
【问题描述】:

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

我是这样用的,但是不行

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

首选示例代码..

【问题讨论】:

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


    【解决方案1】:

    这对你有帮助

    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";
            }
        }
    
    }
    

    【讨论】:

      【解决方案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 建议的那样做,但请不要让成员静态,而是有一个接口,有一个成员,从它派生,将接口传递给数据输入表单,并调用它的方法来更新状态文本数据输入表单。

      【讨论】:

      • 谢谢 Daniel Mosmonder... 现在它工作正常,就像我所需要的一样
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多