diff --git a/src/Libraries/SharpTreeView/ICSharpCode.TreeView/SharpTreeView.cs b/src/Libraries/SharpTreeView/ICSharpCode.TreeView/SharpTreeView.cs index 861b782ba5..66245b6bb2 100644 --- a/src/Libraries/SharpTreeView/ICSharpCode.TreeView/SharpTreeView.cs +++ b/src/Libraries/SharpTreeView/ICSharpCode.TreeView/SharpTreeView.cs @@ -152,10 +152,11 @@ namespace ICSharpCode.TreeView var list = SelectedItems.Cast().Except(selectedOldItems).ToList(); SetSelectedItems(list); if (SelectedItem == null && this.IsKeyboardFocusWithin) { - // if we removed all selected nodes, then move the focus to the node + // if we removed all selected nodes, then move the focus to the node // preceding the first of the old selected nodes SelectedIndex = Math.Max(0, e.OldStartingIndex - 1); - FocusNode((SharpTreeNode)SelectedItem); + if (SelectedIndex >= 0) + FocusNode((SharpTreeNode)SelectedItem); } } }