動くコード図鑑技術記事現場の渡り方キャリア論すべての記事About
C#

パターン4: ContextMenuStrip.Opening —動的な表示制御

出典: WinForms メニュー3兄弟 — MenuStrip / ToolStrip / ContextMenuStrip の使い分けと DataGridView 連携パターン4: ContextMenuStrip.Opening —動的な表示制御

パターン4: ContextMenuStrip.Opening —動的な表示制御 (csharp)#00a271c9dc03
private void rowContextMenu_Opening(object sender, CancelEventArgs e)
{
    //メニュー全体をキャンセル(表示しない)
    if (masterGridView.CurrentRow == null)
    {
        e.Cancel = true;  //メニュー表示自体を抑制
        return;
    }
 
    //個別アイテムの表示制御
    var currentUserCanEdit = CheckEditPermission();
    var currentUserCanDelete = CheckDeletePermission();
 
    editToolStripMenuItem.Visible = currentUserCanEdit;
    deleteToolStripMenuItem.Visible = currentUserCanDelete;
 
    //ステータスによる表示制御
    var status = (string)masterGridView.CurrentRow.Cells["status"].Value;
    deleteToolStripMenuItem.Enabled = (status != "確定済");  //確定済は削除不可
}
 
private bool CheckEditPermission(){ return true; /* 実際は権限チェック */ }
private bool CheckDeletePermission(){ return false; /* 実際は権限チェック */ }
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
  • id: #00a271c9dc03
  • lines: 23
  • extracted: 2026-06-10

Source収録記事

この snippet は記事の「パターン4: ContextMenuStrip.Opening —動的な表示制御」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。

同じ記事から

5
図鑑トップ