TreeView控件加载一般方法和把参数传回父窗体

public partial class Select_Dept : Form
    {
        DataSet ds = new DataSet();
        DB db = new DB();
        private string DeptID;
        private string DeptName;
        public Select_Dept()
        {
            InitializeComponent();
        }

        private void Select_Dept_Load(object sender, EventArgs e)
        {
            initTree();
        }

        private void initTree()
        {
            getData();
            if (ds.Tables[0].Rows.Count > 0)
            {
                InitTree0(treeDept);
                treeDept.ExpandAll();  //展开所有数据

            }
        }

        private void getData()
        {
            C_Base_Dept c_B = new C_Base_Dept();
            string strWhere = "";
            strWhere = " void_flag=0  ";
            ds = c_B.GetList(-1, strWhere, "ParentID");
        }

        //根结点加载函数
        private void InitTree0(TreeView tree)
        {
            tree.Nodes.Clear();  //TreeView1为TreeView控件
            //Tree_Dept.Nodes.Clear();
            TreeNode root = new TreeNode("根节点");
            tree.Nodes.Add(root);
            DataRow[] rows = ds.Tables[0].Select("ParentID=0");
            for (int i = 0; i < rows.Length; i++)
            {
                TreeNode T_root = new TreeNode();
                DataRow dr = rows[i];
                T_root.Tag = dr["Base_DeptID"].ToString();
                T_root.Text = dr["CNName"].ToString();
                root.Nodes.Add(T_root);
                InitTree(T_root, dr["Base_DeptID"].ToString());  //根结点加载完后,开始调用加载子结点的函数,并开始递归。
            }
        }

        //子树结点加载函数
        private void InitTree(TreeNode Nd, String Parent_id)  
        {
            DataRow[] rows = ds.Tables[0].Select("ParentID=" + Parent_id);
            if (rows != null)
            {
                for (int i = 0; i < rows.Length; i++)
                {
                    TreeNode Tnd = new TreeNode();
                    DataRow dr = rows[i];
                    Tnd.Tag = dr["Base_DeptID"].ToString();
                    Tnd.Text = dr["CNName"].ToString();
                    Nd.Nodes.Add(Tnd);
                    InitTree(Tnd, dr["Base_DeptID"].ToString());  //递归调用
                }
            }
        }

        private void treeDept_AfterSelect(object sender, TreeViewEventArgs e)
        {
            DeptID = treeDept.SelectedNode.Tag.ToString();
            DeptName = treeDept.SelectedNode.Text;
            this.DialogResult = DialogResult.OK;
        }

        public string GetDeptID
        {
            get
            {
                return DeptID;
            }
        }

        public string GetDeptName
        {
            get
            {
                return DeptName;
            }
        }

    }
//父窗体接收参数
 private void BtnSelect_Click(object sender, EventArgs e)
        {
            Select_Dept cs = new Select_Dept();
            cs.StartPosition = FormStartPosition.CenterScreen;
            cs.ShowDialog();
            if (cs.DialogResult == DialogResult.OK)
            {
                lblDeptID.Text = cs.GetDeptID;
                TxtDeptName.Text = cs.GetDeptName;
                cs.Close();
            }
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值