ノードを選択している場合のみコンテキストメニューを表示させる(ツリービュー)

ツリービューでノードを選択している場合のみコンテキストメニューを表示させる方法。

※ツリービューのコンテキストメニューのプロパティは既に設定されているものとする

ツリービューもリストビューと考え方は同じ。
ContextMenuStripのOpeningイベントで選択ノードをチェックすればよい。
ただし、ツリービューでは右クリックではノード選択はされないので、
右クリックでもノードが選択される機能も追加する。

System::Void Form::frmTreeView_ContextMenuStrip_Opening(System::Object^ sender, System::ComponentModel::CancelEventArgs^ e)
{
    System::Windows::Forms::TreeNode^ frmTreeNode;
    
    // クリックされたノードを取得
    frmTreeNode = frmTreeView->GetNodeAt( frmTreeView->PointToClient( Cursor->Position ) );
    
    // ノードクリックじゃない場合は除外
    if( frmTreeNode == nullptr )
    {
        e->Cancel = true;
        return;
    }
    
    // ノードを選択状態にする
    frmTreeView->SelectedNode = frmTreeNode;
}

イベントハンドラの登録は省略

コメントを残す

メールアドレスが公開されることはありません。