我想从一个表单添加一个节点到另一个表单。我有以下代码,但它不起作用:
从Form2:
private void button2_Click(object sender, EventArgs e)
{
_HauptFenster = new Form1();
_HauptFenster.AddGroup(textBox1.Text);
this.Close();
}
到Form1:
public void AddGroup(string name)
{
MessageBox.Show(name);
Einträge.Nodes.Add(name);
}
我可以在MessageBox中看到节点的真实名称,但该节点未被添加到Form1上的TreeView。
答案 0 :(得分:0)
我找到了解决方案:
Form1 master = (Form1)Application.OpenForms["Form1"];
master.Einträge.Nodes.Add(name);
我认为这就是commit;特别是,方案1,我试图将它添加到Form1的 new 实例中的TreeView控件,而不是添加到Form1的现有实例。
答案 1 :(得分:0)
我看到两种可能的情况:
你有一个Form2,你需要在Form1的树视图中添加一个节点(假设Form1已经显示)。在这种情况下,您不能使用_HauptFenster = new Form1();
这是一个新的Form1,而不是您已有的Form1。你应该做的是在form2中引用form1:
public partial class Form1 : Form
{
Form1 form1;
public Form2()
{
InitializeComponent();
}
public Form2(Form1 form1):this()
{
this.form1= form1;
}
private void button1_Click(object sender, EventArgs e)
{
form1.AddGroup("something");
this.Close();
}
}
并更改修改您打开Form2的方式:
private void button1_Click(object sender, EventArgs e)
{
Form2 form2= new Form2(this);
form2.Show();
}
Form1尚未显示,因为您忘了提起它:
private void button1_Click(object sender, EventArgs e)
{
Form1 form1= new Form1 ();
form1.Show();
form1.AddGroup("something");
this.Close();
}