private void testSetNavigationTree_BeforeSelect( object sender, TreeViewCancelEventArgs e )
{
var fi = e.Node.Tag as FileInfo;
var di = e.Node.Tag as DirectoryInfo;
bool ctrlKey = ( ModifierKeys == Keys.Control );
bool shftKey = ( ModifierKeys == Keys.ShiftKey );
RemovedPaintedNodes();
if (!ctrlKey && !shftKey && _selectedNodes.Count > 0)
_selectedNodes.RemoveRange( 0, _selectedNodes.Count );
if (ctrlKey && _selectedNodes.Contains( e.Node ))
{
e.Cancel = true;
_selectedNodes.Remove( e.Node );
}
else
{
_lastTreeNode = e.Node;
if (!shftKey)
{
_firstTreeNode = e.Node;
RemovedPaintedNodes();
}
}
PaintSelectedNodes();
}