我不能在Treeview中添加Treenode

本文关键字:添加 Treenode Treeview 不能 | 更新日期: 2023-09-27 18:05:58

我想通过子表单向父表单添加一个树节点但是它没有出现在treeview

我还添加了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);
}

我不能在Treeview中添加Treenode

有很多方法可以做到这一点。一种方法是在子窗体中包含主窗体的引用。在子表单构造函数中添加参数。假设子表单的名字是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);
        }
    }
}