C# 要从按钮刷新表单中的列表视图,请在另一个表单中单击

C# 要从按钮刷新表单中的列表视图,请在另一个表单中单击,c#,.net,C#,.net,我有两个表格F1和F2。在F1中,我有一个列表视图和一个添加按钮。当我单击添加按钮时,F2打开,我可以添加一些值 我在F2中有一个按钮accept,当按下该按钮时,将值从F2添加到表中并关闭F2 我编写了一个刷新方法,用于刷新F1中的列表视图。我试图在F2的accept button_click事件中调用此方法。我在F2.cs中编写了类似的内容 F1 f=new F1(); private void accept_Click(object sender, EventArgs e) { /

我有两个表格F1和F2。在F1中,我有一个列表视图和一个添加按钮。当我单击添加按钮时,F2打开,我可以添加一些值

我在F2中有一个按钮accept,当按下该按钮时,将值从F2添加到表中并关闭F2

我编写了一个刷新方法,用于刷新F1中的列表视图。我试图在F2的accept button_click事件中调用此方法。我在F2.cs中编写了类似的内容

F1 f=new F1();
private void accept_Click(object sender, EventArgs e)
{
    //my adding values code

    this.Close();
    f.refresh();
 }

刷新方法工作正常..只是当我从F2调用它时,它没有执行其功能..有人建议一种更好的方法来实现我想要的..非常感谢任何建议..

您需要将对F1的引用传递到F2表单中

F2 f = new F2(this);
f.Show();
F1格式

F2 f = new F2();
f.f1ref = this;
以F2形式

public F1 f1ref;

private void accept_Click(object sender, EventArgs e)
{
//my adding values code
f1ref.refresh();
this.Close(); 
}

您需要将对F1的引用传递到F2表单中

F2 f = new F2(this);
f.Show();
F1格式

F2 f = new F2();
f.f1ref = this;
以F2形式

public F1 f1ref;

private void accept_Click(object sender, EventArgs e)
{
//my adding values code
f1ref.refresh();
this.Close(); 
}

您需要将对F1的引用传递到F2表单中

F2 f = new F2(this);
f.Show();
在此之后,在forrm f2中创建f1的全局对象

 f1 GBobjF1=null;
然后在以下f2形式的构造函数中初始化该对象GBobjF1

 public f2(f1  f1Obj)
    {
        InitializeComponent();
        GBobjF1 = f1Obj;

    }
现在可以在f2窗体上使用全局对象GBobjF1,使用此对象可以访问f1窗体的所有公共成员。 您可以重新填充f1中的列表视图,如:

GBobjF1.FillListView();

它将刷新列表视图,并用新值重新填充列表视图

您需要将对F1的引用传递到F2表单中

F2 f = new F2(this);
f.Show();
在此之后,在forrm f2中创建f1的全局对象

 f1 GBobjF1=null;
然后在以下f2形式的构造函数中初始化该对象GBobjF1

 public f2(f1  f1Obj)
    {
        InitializeComponent();
        GBobjF1 = f1Obj;

    }
现在可以在f2窗体上使用全局对象GBobjF1,使用此对象可以访问f1窗体的所有公共成员。 您可以重新填充f1中的列表视图,如:

GBobjF1.FillListView();

它将刷新列表视图并用新值重新填充该视图

什么是“f”?刷新调用中有什么内容?@dotnet_noob
f
是一个新表单,没有引用父表单。既然您要在单击“接受”按钮后关闭F2,为什么不在F2中创建一个公共列表以将其值公开给F1,然后从F1调用refresh?@bug f是我在F2中创建的F1的一个新实例,用于调用F1中的一个方法。.在refresh()中,我有代码将以F1形式加载ListView。对,因此“f”与您正在查看的Form1不同,因此您不会看到它更新。“f”是什么?刷新调用中有什么内容?@dotnet_noob
f
是一个新表单,没有引用父表单。既然您要在单击“接受”按钮后关闭F2,为什么不在F2中创建一个公共列表以将其值公开给F1,然后从F1调用refresh?@bug f是我在F2中创建的F1的一个新实例,用于调用F1中的一个方法。在refresh()中,我有代码将以F1形式加载ListView。对,因此“f”与您正在查看的Form1不同,因此您不会看到它更新。F2 f=新F2(此);我在这行中得到一个错误,即“this”在当前上下文中不可用。.F2 f=新的F2(this);我在这行中遇到错误,说“this”在当前上下文中不可用。。