C# 在C中使用close form后的方法#

C# 在C中使用close form后的方法#,c#,forms,C#,Forms,我想在关闭form2.cs后调用类form1.cs中的方法 表格1: private void button1_Click(object sender, EventArgs e) { var form2= new form2(); form2.Show(); } public void Form1Refresh() { //some code } private void button1_Click(object sender, EventArgs e) { ...

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

表格1:

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

public void Form1Refresh()
{
  //some code 
}
private void button1_Click(object sender, EventArgs e)
{
  ...

  Close();

  //call refresh from form1

}
表格2:

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

public void Form1Refresh()
{
  //some code 
}
private void button1_Click(object sender, EventArgs e)
{
  ...

  Close();

  //call refresh from form1

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


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

当您创建并显示
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");
}

创建并显示
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");
}

这个问题可能是重复的

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

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

Windows窗体已经包含一个名为
Refresh
的方法,是否要对基类隐藏该方法?我建议给它一个不同的名称,或者至少调用
base.Refresh()来自您的方法。

这个问题可能是重复的

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

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

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

尝试调用主窗口并将其解析为Form1

Window Window=Application.Current.MainWindow


((form1)window.Refresh()

尝试调用主窗口并将其解析为Form1

Window Window=Application.Current.MainWindow

((form1)window.Refresh()

试试这段代码

表格1:

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

 public void Form1Refresh()
        {
           ///////

        }
表格2:

 public Form1 f1;
        public Form2(Form1 m)
        {
          this.f1 = m;
            InitializeComponent();
        }


 private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
            f1.Form1Refresh();     

        }
试试这个代码

表格1:

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

 public void Form1Refresh()
        {
           ///////

        }
表格2:

 public Form1 f1;
        public Form2(Form1 m)
        {
          this.f1 = m;
            InitializeComponent();
        }


 private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
            f1.Form1Refresh();     

        }

使用C#Casting Cihck此链接使用C#Casting Cihck此链接非常有用,谢谢!非常好,谢谢!