c#winfrom 中的treeview控件问题
public void AddTree1(int AID, TreeNode pNode)
         {
             DataTable dt = new DataTable();
             dt = AccessFactory.getDataTable(string.Format("select * from Anotomical "));
             DataView dvTree = new DataView(dt);
             foreach (DataRowView row in dvTree)
             {
                 TreeNode node = new TreeNode();
                 node.Text = row["description"].ToString();
                 node.Name = row["description_en"].ToString();
                 BindSubTree1(Convert.ToInt32(row["aid"].ToString()), node);
                 this.treeView1.Nodes.Add(node);
             }
         }
         private void BindSubTree1(int Aid, TreeNode PNode)
         {
             DataTable subdt = new DataTable();
             subdt = AccessFactory.getDataTable(string.Format("select * from Pathological where aid='{0}'  ", Aid));
             if (subdt.Rows.Count != 0 && PNode != null)
             {
                 foreach (DataRow dr in subdt.Rows)
                 {
                     TreeNode subNode = new TreeNode();
                     subNode.Text = dr["description"].ToString();
                     subNode.Name = dr["description_en"].ToString();
                     BindNextSbuTree1(Convert.ToInt32(dr["aid"]), Convert.ToInt32(dr["pid"]), subNode);
                     PNode.Nodes.Add(subNode);
                 }
             }
         }
         private void BindNextSbuTree1(int aid, int pid, TreeNode pnode)
         {
             DataTable subdt = new DataTable();
             subdt = AccessFactory.getDataTable(string.Format("select * from SubPathological where aid='{0}' and pid='{1}'", aid, pid));
             if (subdt.Rows.Count != 0 && pnode != null)
             {
                 foreach (DataRow dr in subdt.Rows)
                 {
                     TreeNode subnode = new TreeNode();
                     subnode.Text = dr["description"].ToString();
                     subnode.Name = dr["description_en"].ToString();
                    // subnode.Tag = dr["aid"].ToString();
                     subnode.Tag = dr["pid"].ToString();
                     pnode.Nodes.Add(subnode);
                 }
             }
         }
这里是我加载的treeview控件,我现在想得到选中的节点的父节点aid和子节点pid,怎么获取
------解决方案--------------------
 // subnode.Tag = dr["aid"].ToString()
你把这句留下就可以了
父节点id=treeView1.SelectedNode.Parent.aid
------解决方案--------------------
首先,你得把aid和pid都得绑定到每个节点里,node.Tag就只有一个,怎么办?你直接把DataRow绑定到node.Tag上就可以了。如:node.Tag= dr;
选中某个node的时候
TreeNode node = treeView1.SelectedNode;
DataRow dr = node.Tag as DataRow;  
string aid =string.Empty();
string pid = string.Empty();
if( node.Parent!=null) //说明是子节点
{
  aid = dr["aid"].ToString();
  pid = dr["pid"].ToString();
}
else  //根节点
{
  aid=dr["aid"].ToString();
}