无法向 TreeView 控件添加新节点
Can't add new nodes to TreeView control
我想将节点从一种形式添加到另一种形式。我有以下代码,但它不起作用:
来自 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 中。
我找到了解决方案:
Form1 master = (Form1)Application.OpenForms["Form1"];
master.Einträge.Nodes.Add(name);
我想这就是;具体来说,场景 1,我试图将它添加到 Form1 的 new 实例中的 TreeView 控件,而不是添加到 existing Form1 的实例。
我看到两种可能的情况:
您有一个 Form2,您需要向 Form1 的树视图添加一个节点(假设 Form1 已经显示)。在这种情况下,您不能使用 _HauptFenster = new 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();
}
我想将节点从一种形式添加到另一种形式。我有以下代码,但它不起作用:
来自 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 中。
我找到了解决方案:
Form1 master = (Form1)Application.OpenForms["Form1"];
master.Einträge.Nodes.Add(name);
我想这就是
我看到两种可能的情况:
您有一个 Form2,您需要向 Form1 的树视图添加一个节点(假设 Form1 已经显示)。在这种情况下,您不能使用
中引用 form1_HauptFenster = new Form1();
,它是一个新的 Form1,而不是您已经拥有的那个。你应该做的是在 form2: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(); }