- - PR -
Windowsフォームをロード時から非表示にする方法
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2002-12-06 16:47
はじめまして。
非常にしょーもない質問のような気がするのですが、ご存知の方がいらっしましたら お教えください。 C#でもVBでも構わないのですが、Windowsアプリケーションとして作成した フォームがあり、それを初期状態から非表示にしたいのです。 VB6ではForm_LoadイベントプロシージャにMe.Visible=falseと記述しておけば 実現できたのですが、.NETではうまくいかずにフォームが表示されてしまいます。 Form1_LoadとOnLoadの両方で試してみましたが、うまくいきませんでした。 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.Visible = False End Sub Protected Overrides Sub OnLoad(ByVal e As System.EventArgs) Me.Visible = False End Sub このフォーム上にボタンを配置して、そのなかでVisibleプロパティをFalseに すると、うまくいきます。また、OnLoadではなくOnActivatedに記述を 移すと、一瞬フォームが見えたあとで非表示になります。 何か基本的な事を見落としているような気もしますが、 どなたか対処法を教えていただけませんでしょうか。 |
|
投稿日時: 2002-12-06 18:45
最小化にしてタスクバーに表示させるのではダメなのですか?
最小化にするのであれば、フォームのプロパティの『WindowsState=Minimized』でできます。 また、たまたま発見したのですが、『WindowsState=Minimized』にして、コードの Form_Load イベントのところに『this.visible = false』を記述しておいたら、何か隠れたっぽいです。。。 この方法が適切かどうかはわかりませんが。 |
|
投稿日時: 2002-12-06 18:48
Application.Run(new Form1());
は表示までしてしまうので、 new Form1(); Application.Run(); とするのはどうでしょうか? VB.NETではスタートアップの設定を変えて、自分で作った Sub Mainを指定して、その中で上記のようにする必要がある と思います(たぶん) |
|
投稿日時: 2002-12-08 23:31
potetoさん、Valhallaさん、どうもご返答ありがとうございました。
potetoさんが教えていただいた方法で対処することにしました。 Valhallaさんが教えていただいた方法も試してみたのですが、実は他の アプリケーションとの連携の問題があり、FormはLoadした後でないと そちらの方がうまく動作しなかったためです。 お二人ともどうもありがとうございました。 |
|
投稿日時: 2002-12-09 09:21
どうもです。
採用された方法については、ベテランの方々にフォローを頂いたほうが良いかと・・・ なんせ、たまたま発見した方法ですので、なんで、うまいこと隠すことが出来たのか、腑に落ちないところがありますね(~~; なんか、.NETのバグってことも考えられるような気がするのですが。 ※それは無いか。。。 自分で言っておきながら、スンマセン。 |
1