none
コンテキストメニュー RRS feed

  • 質問

  • コンテキストメニューを一時的に非表示にしたいので、

    ContextMenuStrip1.Visible = False

    ContextMenuStrip1.Hide()

    などを試しましたが、どちらも実行してみて右クリックすると、コンテキストメニューが表示されてしまいます。

    非表示にする方法はないのでしょうか。

    2006年12月16日 11:42

回答

  • コンテキストメニューを表示しているコントロールのContextMenuStripをNothingにすればよいのではないでしょうか?
    あと、よくやるのが、ToolStripItemのEnabledをfalseにして、グレーアウトしてしまう方法です。

    2006年12月16日 13:14
    モデレータ
  • こちさん、こんにちは。
    ちょっと気になったところを突っ込みます。

     こち さんからの引用
    コンテキストメニューを一時的に非表示にしたいので、

    ContextMenuStrip1.Visible = False
    ContextMenuStrip1.Hide()

    などを試しましたが、どちらも実行してみて右クリックすると、コンテキストメニューが表示されてしまいます。

    Visible プロパティおよび、Hide メソッドについて誤解があるようです。

    これらは、未来永劫非表示にするという意味合いは持ち合わせていません。
    その時、表示中であれば非表示にしようとするものです。(タイミングによっては潰されることもありますが)

    これは、どのコントロールでも同じです。

    2006年12月16日 13:21

すべての返信

  • コンテキストメニューを表示しているコントロールのContextMenuStripをNothingにすればよいのではないでしょうか?
    あと、よくやるのが、ToolStripItemのEnabledをfalseにして、グレーアウトしてしまう方法です。

    2006年12月16日 13:14
    モデレータ
  • こちさん、こんにちは。
    ちょっと気になったところを突っ込みます。

     こち さんからの引用
    コンテキストメニューを一時的に非表示にしたいので、

    ContextMenuStrip1.Visible = False
    ContextMenuStrip1.Hide()

    などを試しましたが、どちらも実行してみて右クリックすると、コンテキストメニューが表示されてしまいます。

    Visible プロパティおよび、Hide メソッドについて誤解があるようです。

    これらは、未来永劫非表示にするという意味合いは持ち合わせていません。
    その時、表示中であれば非表示にしようとするものです。(タイミングによっては潰されることもありますが)

    これは、どのコントロールでも同じです。

    2006年12月16日 13:21
  • trapemiyaさん、じゃんぬねっとさん、ありがとうございました。

    コンテキストメニューが非表示にできました。

    Visibleプロパティ、Hideメソッドについて、じゃんぬねっとさんが言われた通りの誤解をしていました。貴重なアドバイス、本当にありがとうございます。

    2006年12月17日 1:13