DOBON.NET DOBON.NETプログラミング掲示板過去ログ

コンテキストメニューの非表示方法

環境/言語:[WindowsXP C#]
分類:[.NET]

はじめまして。
ちょっと困っているので、わかる方いらしたら教えてください。

開発環境:WindowsXP、C#(VisualStudio2005使用)

右クリックではなく、
ボタン(以下ボタンAとします)を押した時に任意の場所にコンテキストメニューを表示しています。
メニューを選択したらフォームに別のボタン(以下ボタンBとします)を表示させ、
そのボタンのクリックイベントで処理を行っています。

コンテキストメニュー表示⇒選択でボタンB表示、
まではうまく行っているのですが、
この時、コンテキストメニューが画面上に残ったままになってしまいます。
別ボタンのイベントが終了すると消えるのですが…。
見た目にもちょっとイマイチなので、
なんとかこのコンテキストメニューを消す方法はないでしょうか?

結果的にボタンBのイベント終了後には消えるので、
一時的に隠すとか、そういう方法でも構いません。

コンテキストメニューで無理だというのであれば、
ボタンAクリックでポップアップメニューが出せればOKなので
どなたかお知恵をお貸し下さい。
宜しくお願いします。
■No27569に返信(うみたさんの記事)
> メニューを選択したらフォームに別のボタン(以下ボタンBとします)を表示させ、
> そのボタンのクリックイベントで処理を行っています。
ボタンの PerformClick メソッドを呼び出している、という事でしょうか?

> この時、コンテキストメニューが画面上に残ったままになってしまいます。
> 別ボタンのイベントが終了すると消えるのですが…。

(案1) 強制再描画のために、Refresh メソッドを呼び出してみる(駄目かも)。
(案2) ボタンの処理を BeginInvoke メソッドで呼び出すようにしてみる。
(案3) Timer の Tick イベントを使って、僅かに遅延実行させてみる。
(案4) ボタンの処理を呼び出す直前に、DoEvents メソッドを一回だけ呼んでみる。
魔界の仮面弁士さん

すばやいレスありがとうございます!
Refreshで解決できました。

DoEventsでも初回はうまく行ったのですが、
2回目以降が駄目でした…(x_x)

解決済みにしておきます。ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板