在主窗体中,我有一个树形视图控件,其中每个节点在主窗体中的面板中调用不同的用户控件。我的问题是其中一个用户控件负责在主窗体中添加/删除/更新树视图的节点。
我尝试使用委托来做它不起作用。
在主窗体中,我有一个这样的方法:
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表单应用程序。
答案 0 :(得分:0)
当你可以获得Uzur Control的主要形式时,解决方案就开始了。 我们使用以下方法:
yourUserControl.FindForm(); or this.FindForm();
然后我们进行下一次投影,以获得实例的主要表单。
private void buttonUpDate_Click(object sender, EventArgs e)
{
((MainForm)this.FindForm()).UpDateTreeView();
}
UpDateTreeView()是MainForm中的公共方法。