![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
こんにちわ。
C#(WindowsForm)で以下のような処理を考えています。
1.起動するとForm1(ログイン画面)が開く
2-1.認証に成功 → 3へ
2-2.認証に失敗 → メッセージを表示し、ログイン画面のユーザ名にフォーカスをセット
3.Form3(メインメニュー)を開く
そこで、スタートアップの画面は、Form1で良いと思うのですが、
2-1の場合に、以下のようなコードを書いてみました。
***************************************
Form3 f = new Form3();
f.ShowDialog(this);
f.Dispose();
this.Close();
***************************************
これでは、次の部分で目的を達成できませんでした。
A.Form3をShowDaialog(this)で開くと、モーダルモードで開くだけとなってしまう。
Showではモードレスとなるだけ。
B.Dispose、Closeを記述してみたが、Form3が開いた時に、
画面上からForm1が消えるわけではない。
Closeでは、システム自体が終了してしまう。
そこで、ShowDialogやShowではなく、Form1を消し、Form3を表示するメソッド等あるのでしょうか?
ちなみに、Form3をCloseした場合に、Form1を再度呼び出す処理は考えていません。
No.1ベストアンサー
- 回答日時:
Form1をCloseしてしまうとプロジェクトの設定によってはアプリケーションが終了してしまいます
また、非表示にする前に設定されたデータなども全て失います
単に非表示にしたいのであれば
this.Hide();
で非表示しましょう
再表示するには this.Show(); で可能です
今回の場合なら ログイン用のForm1は モードレスでかまわないとも思います
2-1、2-2自体は Form1のなかで完結していればいいことだと思います
.NET Framework1.0/1.1なら Mainプロシージャを工夫してやらないといけないでしょう
.NET Framework2.0以降なら プロジェクトのプロパティの アプリケーションタブのシャットダウンモードを『最後のフォームが閉じたとき』にしてやればよさそうです
redfox63さん、回答ありがとうございます。
>また、非表示にする前に設定されたデータなども全て失います
>単に非表示にしたいのであれば
>this.Hide();
>で非表示しましょう
>再表示するには this.Show(); で可能です
Hide()とするのが良いのですね。
どうも、今まで、別言語でClose(に近い)とすると、
Form1がメモリから破棄されるようなイメージを持っていたので、
今回の件は不思議でした。
>2-1、2-2自体は Form1のなかで完結していればいいことだと思います
この点、ご指摘の通りです。
>.NET Framework2.0以降なら プロジェクトのプロパティの アプリケーションタブのシャットダウンモードを『最後のフォームが閉じたとき』にしてやればよさそうです
このプロパティも、初めて目にしました。
早速、やってみます。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C# ログイン画面からメイン画面...
-
FormのsubmitでFormの内容がnull
-
MicroPythonコード
-
C言語で今まで表示していた画面...
-
遷移元を判定したい!
-
JDBCにてデータをひく際のエラ...
-
Strutsのデータ受け渡しについて
-
Javaプログラミングの質問にな...
-
登録後、呼び出し元ページに戻...
-
javaのstrutsを使った画面遷移...
-
Wi-Fiのパスワードが指定なしと...
-
Strutsの情報保持の仕方について
-
ASP.NET 画面遷移前の状態を保...
-
Sessionがnullになりません。
-
デバッグ時にフリーズ
-
JAVAのウインドウ振動の設定で...
-
検索中の画面を表示するには?
-
HTTPステータスコードを取得(VB...
-
EUC-JP-LINUXの文字化け
-
VC++にて、コンソールを二画面表示
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
三菱GOTの画面切り替えについて
-
Python言語のAnacondaの話です ...
-
Java-jspの画面入力値保持について
-
C言語で今まで表示していた画面...
-
C# ログイン画面からメイン画面...
-
ServletからServletへの値渡し
-
FormのsubmitでFormの内容がnull
-
遷移元を判定したい!
-
JAVAのセッション変数の上書き...
-
ASP.NET 画面遷移前の状態を保...
-
画像の縦横比固定の計算方法。
-
Javascriptのhistory.back()が...
-
画面を隠す・消す方法を教えて...
-
ブラウザアドレスバーからのURL...
-
アドレスバーに引数を表示させ...
-
登録後、呼び出し元ページに戻...
-
サブミット後、自動的に画面を...
-
非アクティブな画面を操作する...
-
system("cls")について
-
Javaプログラミングの質問にな...
おすすめ情報