Новая проблема с TreeView и ContextMenu
От: Igorisio Россия  
Дата: 21.12.05 12:39
Оценка:
Здравствуте, ребята.
На днях столкнулся со следующей проблемой. Есть 2-х уровневый TreeView. Для каждого уровня необходимо свое контекстное меню. Об этом уже было написано. Но возникает один нюанс. К событию MouseDown подключаю обработчик:

private void treeView1_MouseDown( object sender, System.Windows.Forms.MouseEventArgs e )
{
    TreeNode tn = treeView1.GetNodeAt( e.X, e.Y );
    if( tn == null ) return ;
    if( tn.Bounds.Contains( e.X, e.Y ) && ( e.Button == MouseButtons.Right ) )
    {
            tn.TreeView.SelectedNode = tn ;
        switch( (string) tn.Tag )
            {
            case "level1" :
                contextMenu1.Show( this.treeView1, new Point( e.X, e.Y ) );
                break;
            case "level2" :
                contextMenu2.Show( this.treeView1, new Point( e.X, e.Y ) );
                break;
        }
    }
}


При первом клике правой клавишей мыши по Node вываливается нужное меню. Но если после этого кликнуть правой на другом Node, то текущее меню исчезает, но новое не появляется. Для его отображения нужно второй раз кликнуть правой. В случае одного ContextMenu для всего TreeView все работает красиво. Идеи? Соображения?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.