void TR_Groups_E_OnEndNodeClicked(object sender, TreeNodeClickEventArg e) { TriStateTreeNode selectedNode = TR_Groups.SelectedNode as TriStateTreeNode; if (selectedNode.Parent == null) { //RootNodeContextClicked(selectedNode, text, index); } else { if (selectedNode.Parent.Equals(_peersRoot)) //peer { //int rowIndex = _peersRoot.Nodes.IndexOf(selectedNode); _activatedPeerNode = selectedNode; if (E_PeerSelected != null) { E_PeerSelected(selectedNode, new PeerSelectedEventArgs(selectedNode.Text, getActivatedPeer())); } } else if (selectedNode.Parent.Equals(_groupsRoot)) //group { TriStateTreeNode peerNode = _activatedPeerNode; string groupName = selectedNode.Text; try { getActivatedPeer().SetMsgList(groupName); } catch (Exception ex) { MessageBox.Show(ex.Message); return; } peerNode.Text = peerNode.Name + "[" + groupName + "]"; if (E_GroupSelected != null) { E_GroupSelected(selectedNode, new GroupSelectedEventArgs(groupName, _groupsDir + "\\" + groupName)); } } else if (selectedNode.Parent.Parent != null && selectedNode.Parent.Parent.Equals(_groupsRoot)) //packet selected { TriStateTreeNode peerNode = _activatedPeerNode; // _peersRoot.Nodes[peerIndex] as TriStateTreeNode; string groupName = selectedNode.Parent.Text; String groupPath = _groupsDir + "\\" + groupName; getActivatedPeer().SetMsgList(groupName); peerNode.Text = peerNode.Name + "[" + groupName + "]"; if (E_GroupSelected != null) { E_GroupSelected(selectedNode, new GroupSelectedEventArgs(selectedNode.Parent.Text, groupPath)); } String packetPath = groupPath + "\\" + selectedNode.Text; if (E_PacketChanged != null) { E_PacketChanged(selectedNode, new PacketChangedEventArgs(selectedNode.Text, packetPath)); } } } }