VB.Netで非表示フォームを作成するには?

解決


初心者  2004-04-25 19:04:16  No: 83130

お世話になります。
VB.Net2002で開発しているのですが、
初期表示フォームを非表示で、システムトレイに常駐するプログラムを作成したいと思っています。
常駐することは出来たのですが、どうしても起動時にフォームが表示されてしまいます。
フォームを非表示にするにはどうすればよいか教えてください。


ねろ  2004-04-26 04:15:38  No: 83131

実は結構厄介です。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vbcon/html/vbtsksettingformtobeinvisibleatitsinception.asp
フォームのコンストラクタでは非表示に設定出来ません。
Mainでやりたくない場合は、Form1_Load に Me.Top = 50000等と
表示位置を、表示できない場所に設定する方法もあります。


初心者  2004-04-27 07:07:10  No: 83132

ねろさん、早速のご回答有難う御座います。
非表示には出来ないのですね。。。
表示位置をマイナス方向に追いやって実行することにします。
有難う御座いました。


ねろ  2004-04-28 02:18:44  No: 83133

>非表示には出来ないのですね
コンストラクターの中で出来ないという事で、全然出来ないわけではありません。
ずーと非表示のままで使用する場合は、スクリーンの外に飛ばす方法で問題は
ありませんが、表示したい場合もある場合は、タイマーを使って、
次の様にすることも出来ます。
    Private Sub Form1_Load(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Opacity = -1
        Timer1.Enabled = True
    End Sub
    Private Sub Timer1_Tick(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles Timer1.Tick
        Timer1.Enabled = False
        Me.Opacity = 1
        Me.Visible = False
    End Sub

Opacityの代わりにMe.Top=-40000等としてもOKですこの場合は
Timerの中でMe.Top=0等とします。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加