• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ユーザーコントロール内にNotifyIconを設置したい)

ユーザーコントロール内にNotifyIconを設置したい

このQ&Aのポイント
  • ユーザーコントロール内にNotifyIconを設置したいと考えています。VB2005で作成しており、複数のフォームが存在する場合に面倒になるため、NotifyIconをサポートしたユーザーコントロールを作成することを考えています。
  • NotifyIconやContextMenuStrip、ToolStripMenuItemなどを利用してシステムトレイの操作が可能であることを理解しています。デザイン上でシステムトレイを利用する場合にのみ、NotifyIconのプロパティが設定可能となり、そのプロパティを操作できます。
  • Form1.Designer.vbファイルでNotifyIconのプロパティ設定に対するコードが記載されないため、ビルドすると初期化されてしまいます。解決策としては、Form1.Designer.vbファイルに直接コードを追加することで、デザイン上で設定したNotifyIconのプロパティが保持されるようになります。また、NotifyIconのすべてのプロパティを自作することも検討できますが、現実的ではありません。

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

  • ベストアンサー
  • AKARI0418
  • ベストアンサー率67% (112/166)
回答No.4

すいません#3では、できないですよね、 最初からインスタンスを生成しておけるならば、同時に設定を行うという方法で対処できないでしょうか? http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard20.htm

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • AKARI0418
  • ベストアンサー率67% (112/166)
回答No.5

プロパティを外部ファイルに吐き出すこともできます。 http://dobon.net/vb/dotnet/programing/dynamicproperties.html

naktak
質問者

お礼

色々な対応方法を教えていただき、ありがとうございます。 私も何か一辺倒な作り方に固執していたような感があります。 教えていただいた方法を参考に、実現することが出来ました。

すると、全ての回答が全文表示されます。
  • AKARI0418
  • ベストアンサー率67% (112/166)
回答No.3

作成するNotifyIcon = Form1.NotifyIcon1 ではだめなのですか?

すると、全ての回答が全文表示されます。
  • AKARI0418
  • ベストアンサー率67% (112/166)
回答No.2

すいません質問の意図を正しく読み取れていませんでした。 コントロールの動的追加ができれば解決するのではないでしょうか?

参考URL:
http://dobon.net/vb/dotnet/control/addcontrol.html
naktak
質問者

補足

実質的にコントロールの動的追加になるのかもしれませんが、 継承されたフォームをデザイン時に、No1の補足のような コードが動作し、プロパティウィンドウにてシステムトレイを 利用すると設定された時に限りシステムトレイに関するプロパティが 変更可能になるということをしたいです。 で、それが仮に出来たとしても、現時点ではDesigner.vb側へ システムトレイに関するプロパティのコードが反映されない為、 ビルドをすると、システムトレイに関するプロパティが全部初期状態に 戻ってしまうのです。 なんか、ファイル添付とか出来ればわかり易いんですけどね・・・。 文字だけだとなかなか・・・。

すると、全ての回答が全文表示されます。
  • AKARI0418
  • ベストアンサー率67% (112/166)
回答No.1

クラス内にPublic宣言でNew Windows.Forms.NotifyIconを宣言しておけば、クラス名.NotifyIconの名前.プロパティとできるのではないですか?

naktak
質問者

補足

すみません、イメージが付きません・・・。 現在、Form1として以下のような感じです。 Private mSystemTrayUsable As Boolean = False Private mNotify As NotifyIcon = Nothing <Browsable(True), DefaultValue(False), Category("System Tray Support Property"), Description("システムトレイの利用を示します。")> _ Public Property SystemTrayUsable() As Boolean   Get     Return mSystemTray   End Get   Set(ByVal value As Boolean)     mSystemTray = value     If value Then       mNotify = New NotifyIcon()     Else       mNotify = Nothing     End If    End Set End Property <Browsable(True), Category("System Tray Support Property"), Description("システムトレイを操作します。")> _ Public ReadOnly Property Notify() As NotifyIcon   Get     If mNotify Is Nothing Then       Return Nothing     End If     Return mNotify   End Get End Property これを継承元としたForm2のプロパティで、SystemTrayUsableプロパティを Trueに設定すると初めてNotifyプロパティが操作できる、というイメージ です。 (逆にFalseにすると設定が一切できない) Notifyプロパティ自体はReadOnlyですが、そこから取得されるオブジェクト の各プロパティ(BalloonTipTitleやIconなど)は設定もできる為、 継承先のForm2でそれらをいじったらForm2.Designer.vbでそれらが 質問にあるように書かれればいいんですけど・・・。 どこをどのようにすれば良いでしょうか?

すると、全ての回答が全文表示されます。

関連するQ&A