/// <summary> /// 选择列表项时处理的事情 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void treeView_AfterSelect(object sender, TreeViewEventArgs e) { /* * 全路径,依次减少父节点路径。如全路径为:a.b.c,那么分成数组Item[3]={a,b,c} * 那么依次测试a.b.c,b.c,和c是否能正确取回对象,能取回,则直接返回 */ Array Item = treeView.SelectedNode.FullPath.Split('\\'); Array.Reverse(Item); List <string> Name = new List <string>(); string str = ""; foreach (string item in Item) { str = item + str; Name.Add(str); str = "." + str; } Name.Reverse(); opc.SelectedItem(Name); }