TreeView的省市选择

TreeView的省市选择

一、父选择窗口

TreeView的省市选择

二、子窗口提供选择FrmSelectAreas

1、数据准备:

  在数据库中有一张表Areas字段为:AID,AName,APid;

  AID为字段地区编号,AName为地区名称,APid为地区父级AID.

2、FrmSelectAreas窗体中,递归遍历绑定数据

  

View Code
 1 void BindParent() //绑定父节点

 2         {

 3             //添加父节点

 4             TreeNode parent = new TreeNode();

 5             parent.Text = "全国";

 6             parent.Tag = 0;

 7             tvAreas.Nodes.Add(parent);

 8             //获取数据集

 9            List<Areas> list = SQLHelper.GetALLAreas();

10             //子节点绑定

11            BindChildRen(parent,list);

12            parent.Expand();//展开父节点

13         }

14         //子节点绑定

15         void BindChildRen(TreeNode parent,List<Areas> list) 

16         {

17             //得到父节点的AId

18             int Aid = Convert.ToInt32(parent.Tag);

19             //遍历

20             foreach (Areas item in list)

21             {

22                 if (Aid == item.APid)

23                 {

24                     TreeNode tn = new TreeNode();

25                     tn.Text = item.AName;

26                     tn.Tag = item.AID;

27                     parent.Nodes.Add(tn);

28 

29                     BindChildRen(tn,list);

30                 }

31             }

32         }

 

 然后,在窗体加载中BindParent();

2、获取地区全名称:

        void GetAreasText(TreeNode tn) 

        {

            if (tn.Parent != null) 

            {

                GetAreasText(tn.Parent);

            }

            strSelected += tn.Text + "-";  //strSelected为窗体的public字段,用于传给父窗体数据。

        }

 3、单击确认时,传回数据,关闭当前窗体

            GetAreasText(tvAreas.SelectedNode);//获取数据

            strSelected = strSelected.TrimEnd('-');

            if (!string.IsNullOrEmpty(strSelected))

            {

                this.DialogResult = DialogResult.OK;

            }

 

 

你可能感兴趣的:(treeview)