- PR -

VB.NET フォーム開く、閉じる

1
投稿者投稿内容
kami
ベテラン
会議室デビュー日: 2004/08/21
投稿数: 95
お住まい・勤務地: 大手町
投稿日時: 2006-02-20 23:46
一度別スレッドに作ってしまい、スレ違いと言われましたので、作成しなおしました。
元スレッド ↓
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=28542&forum=6&2


お疲れ様です、kamiです。

VB.NETを勉強し始めて、いきなり壁にぶつかっております。
よろしければ、ご教授下さい。

やりたい事:別フォームを開いて、自フォームを閉じる。

認証フォームで、認証が成功した場合、メインメニューフォームを開く。
この際に、認証フォームを閉じる処理を入れようと思いました。

まず最初に、
スタートアップの場所を、Login(認証)フォームにしました。
認証を通ると、

'入力されたユーザ名と、パスワードが一致すれば
'認証フォームを閉じて、メインメニューを開く

' MainMenu の新しいインスタンスを生成する
Dim MainMenu As New Form

' MainMenu を表示する
MainMenu.Show()

Me.Close()

これを認証で行うと、メインメニューのフォームを開いて、プログラムが終了します。

で、サクット調べてフォームを持たない、標準モジュールにスタートアップのSub Mainからプログラムを始めて、モジュールから認証を開いて・・・とやったのですが、結果が同じでして、、、はまっております。

.NET系自体はじめてでして、よろしければご教授下さい。

また、VB.NETをやり始めるについて参考となる書籍などがありましたら、ご紹介いただければと思います。

今は、じゃんぬねっとさんのHPを頼りにやっております(^^;

P.S. 会社から@itを閲覧することはできるのですが、書き込みが拒否されるため返信が遅くリなした。

しゅう様、返信ありがとうございます。

引用:---------------------------------------------
すれ違いの様ですが一応コメントを・・・。
MainMenuオブジェクトを宣言(保持)しているフォーム自体を閉じているため、そのインスタンスが消滅しているのでは?
回避策としては・・・Hideなどで非表示にしたりMainMenuの宣言をこのフォーム以外で行ったり・・・。
---------------------------------------------------

上記の事、納得しました。
アドバイスありがとうございます。

で、ふと思ったのですが、プログラムの構造として、一般的(?)にはどこで宣言する物なのでしょうか?
Sub Mainを宣言している標準モジュールなどで行うべきなのでしょうか?

よろしければ、アドバイスお願い致します。
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2006-02-21 00:29
引用:

kamiさんの書き込み (2006-02-20 23:46) より:
Sub Mainを宣言している標準モジュールなどで行うべきなのでしょうか?


起動時に認証したいと言うことなら、その方が実装は楽だと思うよ。認証用のフォームをモーダル表示して、待っていれば済みますから。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-21 09:56
引用:

kamiさんの書き込み (2006-02-20 23:46) より:

一度別スレッドに作ってしまい、スレ違いと言われましたので、作成しなおしました。


しゅうさんも間違えていますが、スレ違いではなく板違い (会議室違い) だと思います。
スレ違いというのは、そのスレッドに関係のない話題をした場合に言われる言葉です。
板違いというのは、その会議室に関係のないスレッドを建てた場合に言われる言葉です。

引用:

kamiさんの書き込み (2006-02-20 23:46) より:

で、サクット調べてフォームを持たない、標準モジュールにスタートアップのSub Mainからプログラムを始めて、モジュールから認証を開いて・・・とやったのですが、結果が同じでして、、、はまっております。

引用:

前スレのしゅうさんの投稿より :

MainMenuオブジェクトを宣言(保持)しているフォーム自体を閉じているため、そのインスタンスが消滅しているのでは?
回避策としては・・・Hideなどで非表示にしたりMainMenuの宣言をこのフォーム以外で行ったり・・・。


Application.Run されたフォームである以上は回避不可能です。
ApplicationContext クラスについて調べてみてください。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
1

スキルアップ/キャリアアップ(JOB@IT)