我用treeview显示xml里面的文件,但是在修改了xml之后,treeview控件显示不出来,只能重新打开程序才行,请教应该怎么做,以下附带treeview控件显示方法public void load()
{
XmlDocument xml = new XmlDocument();
xml.Load("PhoneBook.xml");
XmlNode node = xml.DocumentElement;
treeView.Nodes.Clear();
lPhone.Clear();
TreeNode card = treeView.Nodes.Add("联系人名单");
foreach (XmlNode n1 in node.ChildNodes)
{
card.Nodes.Add(n1.FirstChild.InnerText);
PhoneNumber pn = new PhoneNumber();
foreach (XmlNode n in n1.ChildNodes)
{
switch (n.Name)
{
case "name":
pn.Name = n.InnerText;
break;
case "mobile":
pn.MobileNumber = n.InnerText;
break;
case "tel":
pn.TelephoneNumber = n.InnerText;
break;
case "address":
pn.Address = n.InnerText;
break;
default:
MessageBox.Show("错误");
break;
}
}
lPhone.Add(pn);
}
card.Expand();
}
{
XmlDocument xml = new XmlDocument();
xml.Load("PhoneBook.xml");
XmlNode node = xml.DocumentElement;
treeView.Nodes.Clear();
lPhone.Clear();
TreeNode card = treeView.Nodes.Add("联系人名单");
foreach (XmlNode n1 in node.ChildNodes)
{
card.Nodes.Add(n1.FirstChild.InnerText);
PhoneNumber pn = new PhoneNumber();
foreach (XmlNode n in n1.ChildNodes)
{
switch (n.Name)
{
case "name":
pn.Name = n.InnerText;
break;
case "mobile":
pn.MobileNumber = n.InnerText;
break;
case "tel":
pn.TelephoneNumber = n.InnerText;
break;
case "address":
pn.Address = n.InnerText;
break;
default:
MessageBox.Show("错误");
break;
}
}
lPhone.Add(pn);
}
card.Expand();
}
{
//显示内容
load();
}
你重新执行了load方法了吗?
dt1.Columns.Add(getdt.Columns[j].ColumnName);
dt2.Columns.Add(getdt.Columns[j].ColumnName);
我来分享一下我的解决方法吧!!
比如,你要在form2里面调用form1里面的某个方法。
首先,将form1里面要调用的方法,比如test()设置为public,然后在form2里面重载其构造函数,具体代码如下:Form f1;
public form2(Form1 = form)
{
this.f1 = form;
InitializeComponent();
} 然后,在form1里面,打开form2的时候传递参数,代码如下: Form2 f2 = new Form2(this);
f2.show(); 这样以来,就可以在form2中随意调用form1中的公共方法了!!