C#でNortifyIconのEnable制御する方法

このQ&Aのポイント
  • C#でNortifyIconのEnableプロパティを制御する方法がありませんが、代わりにVisibleプロパティを使うことで一定条件下でNortifyIconを非表示にすることができます。
  • しかし、この方法ではNortifyIcon自体が消えてしまい、外見が悪くなってしまいます。
  • より良い方法を求める場合は、他のライブラリや方法を検討することをおすすめします。
回答を見る
  • ベストアンサー

C#NortifyIconのEnable制御???

一定条件下ではNortifyIconの機能を停止し、その条件が解かれれば再びNortifyIcon機能を有効にしたい すなわち、ある時にはNortifyIconをクリックしても動作せず、また別の時点ではクリックにより動作するようにしたいのです 簡単にいえばNortifyIconのEnableプロパティをtrue/false制御したいのです でも残念なことにNortifyIconのプロパティにはEnableがありません 仕方なくVisibleをtrue/falseしているのですが、この方法ではNortifyIcon自体が点消灯していまい外見が良くありません 何か良い方策をご存知でしたらご指導願います 出来たら、なるべく平易な方法を教えてください

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

動作する,というのがContextMenuStripの表示,というのであれば, ContextMenuStripプロパティに一時的にnullを代入して無効化し, 元のContextMenuStripオブジェクトをプロパティに再代入して有効化すればよいのではないでしょうか。

sato-may
質問者

お礼

なるほど、その手があった!!! 極めて平易で注文通りです ありがとうございました

関連するQ&A

  • DateTimePicker のEnable

    VB.net 2010での質問です。 ど素人なので、的はずれでしたらお許しください。 あるラジオボタンを選択した際に、DateTimePickerを非活性(グレーアウト) したいと考えております。 ラジオボタン選択のアクションで、 DateTimePicker(実際は別名).Enable = False としているのですが、反応がありません。。。 デバッグ実行でも通過は確認しているのですが、 画面に反映されていません。 DateTimePickerのプロパティEnableをFalseにするとたしかに非活性となります。 方法が間違っていますでしょうか?

  • C++ Builder でVisibleとshow

    こんにちは、王次郎です。 C++ Builder でコンポーネントの表示/非表示を切り替えるときに メンバ関数の Show()/Hide() を呼ぶ方法と プロパティの Visible を True/False にする方法がありますが、 どう違うのでしょうか?どちらが良いのでしょうか? よろしくお願いします。

  • C# 画面の描画制御に関して

    Visual C# 2005 Express Editionを使用してC#の勉強をしています buttonコントロールを複数(以下ボタンA群)配置し、 Visibleプロパティで表示/非表示させようと試みています 上記とは別にボタンを配置し、そのクリックイベントとして for (int i = 0; i < 10; i++) { btnAr[i].Visible = !btnArray[i].Visible; //btnAr[]はボタンA群を管理しているButton型配列 } とすることで、ボタンA群を一括で表示/非表示することはできました しかしここで壁にあたったのですが、 この方法だと、各ボタンの描画順位に基づいて、 優先的に、順番に表示されていくのが視覚的にわかります 望んでいるのは、ボタンA群を全て同時に表示/非表示するということなのですが、 ここらへんの描画を制御することはどのようにすることで可能でしょうか 色々調べたところBeginUpdate()やEndUpdate()のような制御が望んでいる内容に近いです (こちらはListBoxに関するもののようで、親フォームに対して使用することはできませんでした) よろしくお願い致します

  • VC++.netでaviを制御するには・・

    VC++.netでaviを制御するには・・ こんにちは、初めて質問します VC++.netで、aviをコントロールするプログラムを製作しています フォーム上に、スイッチを6個作り、スイッチをクリックすると、aviがフル画面で動き aviが終了すると、フル画面が消え、スイッチがあるフォームの絵に戻る というプログラムを作りたいのですが フォーム上にスイッチは、配置できました フォーム上にaxWindowsMediaPlayerを適当に6個配置し axWindowsMediaPlayerのプロパティでVisibleの設定をfalseして消し その他の設定のfullScreenの設定をfalseにして 各スイッチのイベントで、 private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { axWindowsMediaPlayer1->fullScreen; axWindowsMediaPlayer1->Ctlcontrols->play(); axWindowsMediaPlayer1->settings->setMode("loop",false); } と書いたのですが 最初の一回目はフルスクリーンで動き、終了するともとの画面に戻るのですが 2回目以降は、フルスクリーンになりません Visibleを消しているので表示されないのかと思ったのですが Visibleの設定をtrueにすると、aviはイベントで動いているのは、わかったのですが フルスクリーンになりません イベントに  axWindowsMediaplayer1->fullScreen; と、書き足したのですが、フルスクリーンになりません しかたないので、イベントに、axWindowsMediaplayer1のサイズを画面1280×1024に設定して出した のですが、 今度は、aviの終了したというパラメータが返ってこないので終了できなくなってしまいました なにか良い方法がないか教えていただけないでしょうか? VC++.netの環境は、ExpressEditionで書いています よろしくお願いします

  • VC++.netでaviを制御するには・・

    VC++.netでaviを制御するには・・ こんにちは、初めて質問します VC++.netで、aviをコントロールするプログラムを製作しています フォーム上に、スイッチを6個作り、スイッチをクリックすると、aviがフル画面で動き aviが終了すると、フル画面が消え、スイッチがあるフォームの絵に戻る というプログラムを作りたいのですが フォーム上にスイッチは、配置できました フォーム上にaxWindowsMediaPlayerを適当に6個配置し axWindowsMediaPlayerのプロパティでVisibleの設定をfalseして消し その他の設定のfullScreenの設定をfalseにして 各スイッチのイベントで、 private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { axWindowsMediaPlayer1->fullScreen; axWindowsMediaPlayer1->Ctlcontrols->play(); axWindowsMediaPlayer1->settings->setMode("loop",false); } と書いたのですが 最初の一回目はフルスクリーンで動き、終了するともとの画面に戻るのですが 2回目以降は、フルスクリーンになりません Visibleを消しているので表示されないのかと思ったのですが Visibleの設定をtrueにすると、aviはイベントで動いているのは、わかったのですが フルスクリーンになりません イベントに  axWindowsMediaplayer1->fullScreen; と、書き足したのですが、フルスクリーンになりません しかたないので、イベントに、axWindowsMediaplayer1のサイズを画面1280×1024に設定して出した のですが、 今度は、aviの終了したというパラメータが返ってこないので終了できなくなってしまいました なにか良い方法がないか教えていただけないでしょうか? VC++.netの環境は、ExpressEditionで書いています よろしくお願いします

  • ExcelVBA EnableプロパティがFalseの時に文字の色を変えたくない

    ユーザーフォーム上のテキストボックスの内容を変えたくないときにEnableプロパティをFalseにすると、文字の色が灰色に変わってしまいますよね。 色を変えたくないので防ぐ方法はないでしょうか。 また、文字を変更させない方法で、ほかによい方法はないでしょうか。

  • 【Access】フォームを閉じる際の制御について

    AというフォームからBというフォームを開く際、AフォームのVisibleをFalseにし、Bのフォームを閉じる際、AというフォームのVisibleをTrueにするようにしました。 そうしたところ、Bというフォームを開いた状態でAccessの右上の×ボタンをクリックすると、エラーが出るようになりました。 エラー内容より、上記手順の場合、すでにAフォームが閉じている状態で、AフォームのVisibleをTrueにしようとしているためだと思いました。 そのため、Aフォームが開いている場合のみ、AフォームのVisibleをTrueにしたいと思ったのですが、どのように記述すれば良いか分からなかった為、アドバイスいただける方がいらっしゃいましたら、ご教示の程よろしくお願いします。 以上、宜しくお願いします。

  • actionscript2.0から3.0へ、

    actionscript2.0から3.0へ、 actionscript2.0から3.0へ、 大変申し訳ございませんが、 どなたか書き換えていただけないでしょうか? 情報が足りない場合ご指摘くださいましたら 追記いたします。 flash8にて制作されたFlaをCS4にて修正しています。 3.0がわかるものが出来なくなってしまったので、 こちらに書かせていただきました。 400フレームのものなのですが、1フレームに下記のスクリプトがあります。 btnSkip.onRelease = function() { this._visible = false; gotoAndStop("end"); btnRepeat._visible = true; } 400フレーム目には下記のスクリプトがあります。 stop(); btnRepeat._visible = true; btnSkip._visible = false; btnRepeat.onRelease = function() { gotoAndPlay("start"); this._visible = false; btnSkip._visible = true; } みたところステージには、スキップとリピートのムービークリップがあります。 スキップをクリックすると、400フレーム目に飛んでストップ、リピートを押すと1フレーム目に戻って再生、という動作です。 修正前(2.0)は正常に動作していました。 これを3.0に書き換えていただきたいのです。 大変恐縮なのですが、大至急直さないといけないのです。。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • Loadしてある絵を切り替えて表示する

    Excel VABで、同じ表示位置に重ねてLoadしてある複数の画像から 一枚だけを選択して表示しようとしています。次のソースのように 表示する絵だけをVisible = Trueとしていますが、絵の切り替わりが もたもたしていて、スパッと切り替わりません。 もっときれいに切り替えるために何か良い方法はないでしょうか? よろしくお願いします。 Sub dispPicture(pn As Integer) Select Case pn Case 0 ' ClipNameView Image1.Visible = True Image2.Visible = False Image3.Visible = False Image4.Visible = False Image5.Visible = False Case 1 ' ThumbnailView Image1.Visible = False Image2.Visible = True Image3.Visible = False Image4.Visible = False Image5.Visible = False End Select End Sub

  • Excel2003のボタンにVisibleがない。

    Excel2003です。 Sheetへデフォルト設定のCommandButtonをコピーで100個ほど並べました。 すると、いくつかのボタンはプロパティにVisibleがありません。 ボタンは見えているので Visible=True となっているようですが プロパティにVisibleが無いのです。 ソースからVisible=falseを設定すると、OLEなんたらかんたらのエラーが出ます。 プロパティVisibleが無いボタンを削除して、Visibleがあるボタンをコピーして 同じ場所へ貼り付けると、やはりVisibleが消えます。 どう頑張っても解決できなく悩んでいます。 OS:XP OSを再起動しても解決できませんでした。 そこで、解決方法をご存知の方教えていただけないでしょうか。 ファイルは会社にあるので、いまここでテストすることはできません。 何とぞ宜しくお願い致します。

専門家に質問してみよう