【问题标题】:Use method after close form in C#C#中关闭表单后的使用方法
【发布时间】:2018-07-05 11:14:00
【问题描述】:

我想在关闭 form2.cs 后在我的类 form1.cs 中调用一个方法

form1:

private void button1_Click(object sender, EventArgs e)
{
  var form2= new form2();
  form2.Show(); 
}

public void Form1Refresh()
{
  //some code 
}

form2:

private void button1_Click(object sender, EventArgs e)
{
  ...

  Close();

  //call refresh from form1

}

关闭表单后如何使用 Refresh() 方法?我尝试使用new form1 并调用该函数,但这使用了一个新对象并且不起作用。

我应该将 form1 的对象传递给 form2 并使用它还是有其他解决方案?

【问题讨论】:

标签: c# forms


【解决方案1】:

当您创建并显示您的Form2 时,请处理其FormClosed 事件。

private void button1_Click(object sender, EventArgs e)
{
    var form2 = new Form2();
    form2.FormClosed += form2_FormClosed; // This Line
    form2.Show();
}

void form2_FormClosed(object sender, FormClosedEventArgs e)
{
    Debug.Print("Form 2 has been closed. Call the Refresh Action");
}

【讨论】:

  • 非常感谢!
【解决方案2】:

这个问题可能是重复的。

当您在 Form1 中按下按钮时构建 Form2 时,您可以挂钩 FormClosed 事件

        var form2 = new Form2();
        form2.Show();
        form2.FormClosed += (sender, eventArgs) => { Refresh(); };

Windows 窗体已经包含一个名为Refresh 的方法,您是否打算从基类中隐藏该方法?我建议给它一个不同的名字,或者至少从你的方法中调用base.Refresh();

【讨论】:

    【解决方案3】:

    尝试调用 MainWindow 并将其解析为 Form1。

    窗口窗口 = Application.Current.MainWindow;

    ((form1)window).Refresh();

    【讨论】:

      【解决方案4】:

      试试这个代码

      FORM1:

       private void button1_Click(object sender, EventArgs e)
              {
                  Form2 f2 = new Form2(this);
                  f2.Show();
              }
      
       public void Form1Refresh()
              {
                 ///////
      
              }
      

      FORM2:

       public Form1 f1;
              public Form2(Form1 m)
              {
                this.f1 = m;
                  InitializeComponent();
              }
      
      
       private void button1_Click(object sender, EventArgs e)
              {
                  this.Close();
                  f1.Form1Refresh();     
      
              }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-21
        • 1970-01-01
        • 1970-01-01
        • 2016-12-08
        • 1970-01-01
        相关资源
        最近更新 更多