private static void RenderNode(TreeNodeCollection collection, HistoryTreeNode node, HistoryTreeNode currentNode) { var nNode = AddNode(node.Label, node, collection); if (node == currentNode) { nNode.ForeColor = Color.Red; } //collection.Add(nNode); foreach (var oneSubNode in node.Children) { RenderNode(nNode.Nodes, oneSubNode, currentNode); } }
//private bool TryGetNextIndex(ref int index) //{ // if (_history.CurrentNode.Children.Count == 1) // { // index = 0; // return true; // } // var selectedNode = _trvHistory.SelectedNode; // if (selectedNode != null) // { // var histNode = selectedNode.Tag as HistoryTreeNode; // if (histNode != null) // { // if (histNode.Parent == _history.CurrentNode) // { // index = selectedNode.Index; // return true; // } // } // } // return false; //} //public bool CanBeExecutedNow //{ // get // { // int dummy = 0; // return _history.CanRedo() && TryGetNextIndex(ref dummy); // } //} private bool TryGetNextIndex(HistoryTreeNode histNode, ref int index) { if (_history.CurrentNode.Children.Count == 1) { index = 0; return(true); } if (histNode != null) { if (histNode.Parent == _history.CurrentNode) { index = _history.CurrentNode.Children.IndexOf(histNode); return(true); } } return(false); }