【问题标题】:I can't add Treenode in Treeview我无法在 Treeview 中添加 Treenode
【发布时间】:2015-10-25 05:47:37
【问题描述】:

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

我还添加了treeview imageIndex

请告诉我如何添加树节点

// [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);
}

【问题讨论】:

    标签: c# winforms treeview treenode


    【解决方案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);
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2014-04-20
      • 1970-01-01
      • 2019-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多