/// <summary> 窗体创建时加载树节点 /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void frmShortcutKey_Edit_SelectNode_Load(object sender, EventArgs e) { otTreeView1.AfterSelect -= new TreeViewEventHandler(otTreeView1_AfterSelect); List <tShortCutKey> tShortCutKeyList = new ShortcutKeyManageService().GettShortCutKeyList(); EntityList = tShortCutKeyList; foreach (tShortCutKey tShortCutKeyItem in tShortCutKeyList) { imageList1.Images.Add(tShortCutKeyItem.ShortCutKeyID, tShortCutKeyItem.ShortCutKeyImg.ToImage()); } OTTreeView.TreeViewNodeStruct StructTemp = new OTTreeView.TreeViewNodeStruct() { KeyName = "ShortCutKeyID", ValueName = "ShortCutKeyName", ParentName = "ParentID" }; otTreeView1.SetDataSource <tShortCutKey>(tShortCutKeyList, StructTemp); otTreeView1.ExpandAll(); if (SelectedEntity != null && !string.IsNullOrEmpty(SelectedEntity.ShortCutKeyID)) { List <TreeNode> TreeNodeList = otTreeView1.GetAllTreeNode(); TreeNode TreeNodeTemp = TreeNodeList.Where(T1 => T1.Name == SelectedEntity.ShortCutKeyID).FirstOrDefault(); if (TreeNodeTemp != null) { otTreeView1.SelectedNode = TreeNodeTemp; } } Application.DoEvents(); timer1.Enabled = true; }
/// <summary> 刷新列表 /// </summary> private void RefreshTreeView() { TreeNode SelectedNode = ShortcutKey_otTreeView.SelectedNode;//记录刷新之前选中的节点 ShortcutKey_otTreeView.Nodes.Clear(); ShortcutKey_imageList.Images.Clear(); foreach (tShortCutKey tShortCutKeyItem in tShortCutKeyDataSource) { if (tShortCutKeyItem.ShortCutKeyImg.Length == 0) { continue; } ShortcutKey_imageList.Images.Add(tShortCutKeyItem.ShortCutKeyID, tShortCutKeyItem.ShortCutKeyImg.ToImage()); } OTTreeView.TreeViewNodeStruct StructTemp = new OTTreeView.TreeViewNodeStruct() { KeyName = "ShortCutKeyID", ValueName = "ShortCutKeyName", ParentName = "ParentID" }; ShortcutKey_otTreeView.SetDataSource <tShortCutKey>(tShortCutKeyDataSource, StructTemp); ShortcutKey_otTreeView.ExpandAll(); RefreshDataGridView(); //填充右侧表格 #region 将选中行定位到刷新之前的行 try { Exception SetNodeEx = new Exception("NotReSettingNode");//如果无法设置当前节点就抛出这个异常来设置根节点为选中节点 if (SelectedNode == null) { throw SetNodeEx; } if (string.IsNullOrEmpty(SelectedNode.Name)) { throw SetNodeEx; } TreeNode[] TreeNodeArray = ShortcutKey_otTreeView.Nodes.Find(SelectedNode.Name, true); TreeNode TreeNodeTemp = TreeNodeArray.FirstOrDefault(); if (TreeNodeTemp == null) { throw SetNodeEx; } ShortcutKey_otTreeView.SelectedNode = TreeNodeTemp; } #region 设置根节点为选中节点 catch (Exception ex) { if (ex.Message == "NotReSettingNode") { if (ShortcutKey_otTreeView.isBaseNode) { ShortcutKey_otTreeView.SelectedNode = ShortcutKey_otTreeView.GetBaseTreeNode(); } } } #endregion 设置根节点为选中节点 #endregion 将选中行定位到刷新之前的行 }