我想通过子表单向父表单添加一个树节点 但是它没有出现在树视图中
我还添加了treeview imageIndex
请告诉我如何添加treenode
// [childform]
private void button1_Click(object sender, EventArgs e)
{
main _main = new main();
_main.SetFtpClient();
}
//[MainForm]
private void toolStripButton1_Click(object sender, EventArgs e)
{
_ConnectForm.StartPosition = FormStartPosition.CenterParent;
_ConnectForm.ShowDialog(this);
}
public void SetFtpClient()
{
TreeNode svrNode = new TreeNode("server", 0, 0);
svrNode.Nodes.Add("SE", "seoul", 0, 0);
svrNode.Nodes.Add("DJ", "seoul1", 0, 0);
svrNode.Nodes.Add("BS", "seoul2", 0, 0);
TreeNode netNode = new TreeNode("network", 1, 1);
netNode.Nodes.Add("T1", "Cable", 1, 1);
netNode.Nodes.Add("56K", "Modem", 1, 1);
netNode.Nodes.Add("3G", "Wireless", 1, 1);
tv_ftp.Nodes.Add(svrNode);
tv_ftp.Nodes.Add(netNode);
}
答案 0 :(得分:1)
有很多方法可以做到这一点。一种方法是在您的子表单中引用您的主表单。在子表单构造函数中添加参数。假设子表单的名称是 ConnectForm ,主表单是 MainForm 。
using System;
using System.Windows.Forms;
namespace TreeViewDemo
{
public partial class ConnectForm : Form
{
Form parent; // a reference of the main form
public ConnectForm(Form form)
{
InitializeComponent();
// set a reference of the main form
parent = form;
}
void Button1Click(object sender, EventArgs e)
{
// you have to cast it to the MainForm first,
// otherwise the method SetFtpClient is not accessible
var _main = (MainForm) parent;
_main.SetFtpClient();
}
}
}
然后使用参数化构造函数将主窗体传递到子窗体。
using System;
using System.Windows.Forms;
namespace TreeViewDemo
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
void Button1Click(object sender, EventArgs e)
{
// create an instance of child form, and pass the main form into it
var _ConnectForm = new ConnectForm(this);
_ConnectForm.StartPosition = FormStartPosition.CenterParent;
_ConnectForm.ShowDialog(this);
}
public void SetFtpClient()
{
TreeNode svrNode = new TreeNode("server", 0, 0);
svrNode.Nodes.Add("SE", "seoul", 0, 0);
svrNode.Nodes.Add("DJ", "seoul1", 0, 0);
svrNode.Nodes.Add("BS", "seoul2", 0, 0);
TreeNode netNode = new TreeNode("network", 1, 1);
netNode.Nodes.Add("T1", "Cable", 1, 1);
netNode.Nodes.Add("56K", "Modem", 1, 1);
netNode.Nodes.Add("3G", "Wireless", 1, 1);
tv_ftp.Nodes.Add(svrNode);
tv_ftp.Nodes.Add(netNode);
}
}
}