在 C# 中使用委托从其他用户控件更新树视图
Updating a treeview from other usercontrol using delegate in C#
在主窗体中,我有一个树视图控件,其中每个节点在主窗体中的面板中调用不同的用户控件。我的问题是这些用户控件之一负责主窗体中树视图的 add/delete/update 个节点。
我尝试过使用委托来完成它,但它不起作用。
在主窗体中我有一个这样的方法:
public void UpDateTreeView()
{
//load xml file that contain my nodes
//do something
myTreeView.Refresh();
}
在用户控件中我正在尝试:
delegate void UpDatingMyTreeView();
private void buttonUpDate_Click(object sender, EventArgs e)
{
//update the xml file with a new node
//do something...
frm_MainForm frm = new frm_MainForm frm();
UpDatingMyTreeView updTrv = new UpDatingMyTreeView(frm.UpDateTreeView);
updTrv();
}
我从未使用过委托,但它不起作用。我正在使用 windows 表格申请。
当您可以获得 Uzur 控件的主窗体时,解决方案就开始了。
我们使用以下方法:
yourUserControl.FindForm(); or this.FindForm();
然后我们再进行下一次投影,得到Instance的Main form。
private void buttonUpDate_Click(object sender, EventArgs e)
{
((MainForm)this.FindForm()).UpDateTreeView();
}
UpDateTreeView() 是 public MainForm 中的方法。
在主窗体中,我有一个树视图控件,其中每个节点在主窗体中的面板中调用不同的用户控件。我的问题是这些用户控件之一负责主窗体中树视图的 add/delete/update 个节点。
我尝试过使用委托来完成它,但它不起作用。
在主窗体中我有一个这样的方法:
public void UpDateTreeView()
{
//load xml file that contain my nodes
//do something
myTreeView.Refresh();
}
在用户控件中我正在尝试:
delegate void UpDatingMyTreeView();
private void buttonUpDate_Click(object sender, EventArgs e)
{
//update the xml file with a new node
//do something...
frm_MainForm frm = new frm_MainForm frm();
UpDatingMyTreeView updTrv = new UpDatingMyTreeView(frm.UpDateTreeView);
updTrv();
}
我从未使用过委托,但它不起作用。我正在使用 windows 表格申请。
当您可以获得 Uzur 控件的主窗体时,解决方案就开始了。 我们使用以下方法:
yourUserControl.FindForm(); or this.FindForm();
然后我们再进行下一次投影,得到Instance的Main form。
private void buttonUpDate_Click(object sender, EventArgs e)
{
((MainForm)this.FindForm()).UpDateTreeView();
}
UpDateTreeView() 是 public MainForm 中的方法。