//----------------------------------------------------------------------- private static TreeNode[] _createTreeNodeArray(MultiSelectTreeView treeView, ICollection <int> excludingNodesIndexes, int selecteNodeIndex, out TreeNode selectNode) { _tmpSelectNode = null; var nodesCount = treeView.Nodes.Count - excludingNodesIndexes.Count; var nodes = new List <TreeNode>(nodesCount); Parallel.ForEach(treeView, node => { if (!excludingNodesIndexes.Contains(node.Index)) { var newNode = (TreeNode)node.Clone(); if (node.Index == selecteNodeIndex) { _tmpSelectNode = newNode; } lock (_Lock) { nodes.Add(newNode); } } }); selectNode = _tmpSelectNode; return(nodes.ToArray()); }
private static void _selectedNode(TreeNode node, MultiSelectTreeView treeView) { if (treeView != null) { var selectedNode = node; if (treeView.Nodes.IndexOf(node) == -1 && treeView.Nodes.Count != 0) { selectedNode = treeView.Nodes[0]; } treeView.SelectedNode = selectedNode; } }
private MultiSelectTreeViewDoEvents _createTreeViewClone(MultiSelectTreeView treeView) { var treeViewClone = new MultiSelectTreeViewDoEvents { Name = treeView.Name, Location = treeView.Location, Size = treeView.Size, TabIndex = treeView.TabIndex, BackColor = treeView.BackColor, Visible = treeView.Visible, Enabled = treeView.Enabled, ForeColor = treeView.ForeColor, ContextMenuStrip = treeView.ContextMenuStrip, Dock = treeView.Dock, ImageIndex = treeView.ImageIndex, ImageList = treeView.ImageList, SelectedImageIndex = treeView.SelectedImageIndex, Font = treeView.Font, IsMultiSelectSameParent = treeView.IsMultiSelectSameParent, StateImageList = treeView.StateImageList, ShowRootLines = treeView.ShowRootLines, ShowPlusMinus = treeView.ShowPlusMinus, ShowNodeToolTips = treeView.ShowNodeToolTips, ShowLines = treeView.ShowLines, Scrollable = treeView.Scrollable, AutoScrollOffset = treeView.AutoScrollOffset, PathSeparator = treeView.PathSeparator, Margin = treeView.Margin, LineColor = treeView.LineColor, LabelEdit = treeView.LabelEdit, ItemHeight = treeView.ItemHeight, HotTracking = treeView.HotTracking, HideSelection = treeView.HideSelection, FullRowSelect = treeView.FullRowSelect, Cursor = treeView.Cursor, CheckBoxes = treeView.CheckBoxes, BorderStyle = treeView.BorderStyle, AllowDrop = treeView.AllowDrop, AccessibleDescription = treeView.AccessibleDescription, AccessibleName = treeView.AccessibleName }; _onCreateTreeView(treeViewClone, treeView); return(treeViewClone); }
private void _onCreateTreeView(MultiSelectTreeView newTreeView, MultiSelectTreeView oldTreeView) { CreateTreeView?.Invoke(this, new FastTreeViewsControlEventArgs(newTreeView, oldTreeView)); }
internal FastTreeViewsControlEventArgs(MultiSelectTreeView newTreeView, MultiSelectTreeView oldTreeView) { _newTreeView = newTreeView; _oldTreeView = oldTreeView; }