C# 如何从form2控制位于form1中的listview以刷新它
我想刷新位于C# 如何从form2控制位于form1中的listview以刷新它,c#,vb.net,forms,C#,Vb.net,Forms,我想刷新位于表单1中的listview1。我创建了一段代码,可以触发一个公共void来刷新它或使它listview1.visible=false除了messagebox.show(“测试”)之外,没有任何东西可以工作 我如何让它工作 public void RefeshListView() { this.listView1.BeginUpdate(); MessageBox.Show("s");//this shows! only:\ !?!?!?
表单1
中的listview1。我创建了一段代码,可以触发一个公共void来刷新它或使它listview1.visible=false代码>除了messagebox.show(“测试”)之外,没有任何东西可以工作代码>
我如何让它工作
public void RefeshListView()
{
this.listView1.BeginUpdate();
MessageBox.Show("s");//this shows! only:\ !?!?!?
listView1.Visible = false;
listView1.Height = 222;
listView1.EndUpdate();
listView2.Clear();
}
也许需要刷新一下
public void RefeshListView()
{
this.listView1.BeginUpdate();
MessageBox.Show("s");//this shows! only:\ !?!?!?
listView1.Visible = false;
listView1.Height = 222;
listView1.EndUpdate();
listView2.Clear();
listView2.refresh();
}
我有点不清楚你想做什么,但从你的标题来看,你似乎想影响列表视图
从表格1到表格2。我假设Form2是从Form1创建的。在您的例子中,我可以想到两种方法来实现这一点,第一种方法是创建自定义构造函数并将表单实例传递给它,或者在显示表单时分配所有权。第二种方法是在Form2上创建自定义事件,并在Form1中订阅该事件
第一种方法:
在表格1中,当您显示表格2时,使用frm2.show(此)代码>
在Form2中,如果要调用刷新方法,请使用((Form1)Parent).RefreshListView()代码>
或者为Form2创建自定义构造函数
表格1
public partial class Form1 : Form
{
Form2 frm2;
public Form1()
{
InitializeComponent();
frm2 = new Form2(this);
frm2.Show();
}
void frm2_RefreshList(object sender, EventArgs e)
{
RefreshListView();
}
public void RefreshListView()
{
this.listView1.BeginUpdate();
MessageBox.Show("s");//this shows! only:\ !?!?!?
listView1.Visible = false;
listView1.Height = 222;
listView1.EndUpdate();
listView1.Clear();
}
}
public partial class Form1 : Form
{
Form2 frm2;
public Form1()
{
InitializeComponent();
frm2 = new Form2();
frm2.RefreshList += new EventHandler(frm2_RefreshList);
frm2.Show();
}
void frm2_RefreshList(object sender, EventArgs e)
{
RefreshListView();
}
public void RefreshListView()
{
this.listView1.BeginUpdate();
MessageBox.Show("s");//this shows! only:\ !?!?!?
listView1.Visible = false;
listView1.Height = 222;
listView1.EndUpdate();
listView1.Clear();
}
}
表格2
public partial class Form2 : Form
{
Form1 frm1;
public Form2()
{
InitializeComponent();
}
public Form2( Form frm)
{
InitializeComponent();
frm1 = (Form1)frm;
}
private void button1_Click(object sender, EventArgs e)
{
frm1.RefreshListView();
}
}
public partial class Form2 : Form
{
public event EventHandler RefreshList;
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
RefreshList(this, EventArgs.Empty);
}
}
第二种方法:
表格1
public partial class Form1 : Form
{
Form2 frm2;
public Form1()
{
InitializeComponent();
frm2 = new Form2(this);
frm2.Show();
}
void frm2_RefreshList(object sender, EventArgs e)
{
RefreshListView();
}
public void RefreshListView()
{
this.listView1.BeginUpdate();
MessageBox.Show("s");//this shows! only:\ !?!?!?
listView1.Visible = false;
listView1.Height = 222;
listView1.EndUpdate();
listView1.Clear();
}
}
public partial class Form1 : Form
{
Form2 frm2;
public Form1()
{
InitializeComponent();
frm2 = new Form2();
frm2.RefreshList += new EventHandler(frm2_RefreshList);
frm2.Show();
}
void frm2_RefreshList(object sender, EventArgs e)
{
RefreshListView();
}
public void RefreshListView()
{
this.listView1.BeginUpdate();
MessageBox.Show("s");//this shows! only:\ !?!?!?
listView1.Visible = false;
listView1.Height = 222;
listView1.EndUpdate();
listView1.Clear();
}
}
表格2
public partial class Form2 : Form
{
Form1 frm1;
public Form2()
{
InitializeComponent();
}
public Form2( Form frm)
{
InitializeComponent();
frm1 = (Form1)frm;
}
private void button1_Click(object sender, EventArgs e)
{
frm1.RefreshListView();
}
}
public partial class Form2 : Form
{
public event EventHandler RefreshList;
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
RefreshList(this, EventArgs.Empty);
}
}
您还显示了什么???上面的代码位于哪个表格中?