DOBON.NET どぼん!のVB道掲示板(プログラム)過去ログ

アプリケーション開始時にフォームを非表示にする

お世話になりますm(_ _)m

アプリケーション開始時にフォームを表示せず、アイコンを
タスクトレーに格納するアプリを作りたいと考えています。
VB.NET TIPS「アプリケーション開始時のフォームを非表示にする」
を参考にさせていただきましたが、うまくいきません・・・。
f.ShowDialog()を削除してしまうと、アプリが自動的に終了して
しまいますし、VisiblプロパティをFalseとしても、起動直後は
フォームが表示されてしまいます。ご教授いただけると助かります。
よろしくお願いします。
>アプリケーション開始時にフォームを表示せず、アイコンを
>タスクトレーに格納するアプリを作りたいと考えています。
>VB.NET TIPS「アプリケーション開始時のフォームを非表示にする」
>を参考にさせていただきましたが、うまくいきません・・・。
>f.ShowDialog()を削除してしまうと、アプリが自動的に終了して
>しまいますし、VisiblプロパティをFalseとしても、起動直後は
>フォームが表示されてしまいます。ご教授いただけると助かります。
>よろしくお願いします。

NotifyIconコントロールを使ってタスクトレイにアイコンを表示させるとなるとフォームが必要になるので、私のサイトにある「アプリケーション開始時のフォームを非表示にする」というTipsはこの場合役に立たないと思います。

それではどのような方法が定石なのかとなると私もよく分かりませんが、起動時のフォームの状態を最小化にして、さらにタスクバーに表示させないように設定しておくという方法ではどうでしょうか?

サンプルがあるのでは?と思い探したところ、「Visual Studio .NET Family製品 サンプル プログラム」に「Windowsシステム トレイ サンプル(Windows System Tray Sample)」というのがありました。ここではメインのフォームのプロパティが次のようになっていました。(Me.Opacity = 0#で透明にしているらしい。果たしてこんな方法でいいのだろうか?)

Me.MaximizeBox = False
Me.StartPosition = System.Windows.Forms.FormStartPosition.Manual
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None
Me.Enabled = False
Me.AccessibleRole = System.Windows.Forms.AccessibleRole.None
Me.ShowInTaskbar = False
Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide
Me.ControlBox = False
Me.MinimizeBox = False
Me.ClientSize = New System.Drawing.Size(1, 7)
Me.Opacity = 0#

また、コンストラクタが次のようになっていました。Me.Hide()がありますが、果たして必要なのか分かりません。

Public Sub New()
MyBase.New()

Form1 = Me

'This call is required by the Win Form Designer.
InitializeComponent()

'TODO: Add any initialization after the InitializeComponent() call

'this form isn't used directly so hide it immediately
Me.Hide()

'setup the tray icon
Initializenotifyicon()
End Sub
お世話になっております。どぼんさん御自らのご回答、しかも
懇切丁寧なご回答に、大感謝です! たいへんなお手間をおかけ
してしまって、恐縮しております。非常に勉強になりました。

お教えいただいた内容を、さっそく試してみたいと思います。
ありがとうございましたm(_ _)m


>
>NotifyIconコントロールを使ってタスクトレイにアイコンを表示させるとなるとフォームが必要になるので、私のサイトにある「アプリケーション開始時のフォームを非表示にする」というTipsはこの場合役に立たないと思います。
>
>それではどのような方法が定石なのかとなると私もよく分かりませんが、起動時のフォームの状態を最小化にして、さらにタスクバーに表示させないように設定しておくという方法ではどうでしょうか?
>
>サンプルがあるのでは?と思い探したところ、「Visual Studio .NET Family製品 サンプル プログラム」に「Windowsシステム トレイ サンプル(Windows System Tray Sample)」というのがありました。ここではメインのフォームのプロパティが次のようになっていました。(Me.Opacity = 0#で透明にしているらしい。果たしてこんな方法でいいのだろうか?)
>

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