- - PR -
同一プロジェクト内の複数フォームの表示制御について
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-05-30 15:40
はじめまして。
最近.NETを使い始めた初心者です。 過去ログに同じような質問があったら申し訳ありません(一応確認はしましたが・・・)。 VisualC# 2005 Windowsアプリケーション 社内システムを開発しています。 複数のプログラムがある為、メニュー画面を作成しようとしています。 社員によって使える範囲が変わる為、メニュー画面を表示する前にログイン画面として社員番号を入力する画面を作成しました(「Application.Run()」でログイン画面を指定)。 社員番号を入力しメニュー画面に遷移する場合、ログイン画面を「this.Close()」で閉じると、アプリケーションを終了してしまう為、「this.Hide()」で隠すようにしました(ログイン画面は、戻る必要が無いので、隠すより閉じたほうがいいような気もするんですが)。 メニュー画面につけた終了ボタンで「this.Close()」にすると、メニュー画面を閉じるだけで、アプリケーションはそのまま実行中になっているようです。 「Application.Exit()」だとアプリケーションは終了されますが、終了ボタンを押さずに、ウィンドウ右上の「閉じる」ボタンを押した場合、メニュー画面が閉じられるだけのようです。 複数のフォームがある場合、アプリケーションの終了や画面を閉じる制御はどのようにしたらよいのでしょうか? | ||||||||
|
投稿日時: 2006-05-30 15:52
「ApplicationContext」で、検索してみてください。
対策済みかもしれませんが、各プログラムを、直接起動した時のことも考慮してくださいね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-05-30 17:17
じゃんぬねっと様、ご回答ありがとうございます。
過去ログがあったんですね。 参考に作ってみます。
各プログラムは直接起動されないように隠しておこうと思っています。 ありがとうございました。 | ||||||||
|
投稿日時: 2006-05-30 18:09
これでは、根本的な解決になっていないと思われます。 | ||||||||
|
投稿日時: 2006-05-30 19:45
そうですね。 不正なユーザーが直接起動して動かせたらアウトですし、そういう意味での考慮ということだと思います。 #以前、同様のシステム構成を考えた時に、一番悩んだ部分だったので、個人的には、この方法にとても興味があります。 | ||||||||
|
投稿日時: 2006-05-30 19:53
コマンドライン引数、または、AppDomainで渡すなどして、起動時に認証する方法が取られたりしていますね。 1度ログインしたら、もう2度とログインしない運用にする必要もないと思われますので。 何度も手動でのログインは手間にしかなりませんが、バックグラウンドでの認証ならば手間はかかりませんし、セキュリティは向上しますよね。 | ||||||||
|
投稿日時: 2006-05-30 21:50
確かに解決にはなっていないと思います。 社内で利用するシステムでもあり、他の部署の業務にまで手を出すようなことがないので、実行ファイルを隠しフォルダに置くだけでも違うと思っています(利用者の平均年齢も若干高く、PCに詳しい人も少ないので)。 後は、各実行ファイルに社員番号か部署番号を引数で渡そうかとも思っています。 ただ、今後のことも考えると、もっとよく考えたほうがいいんでしょうね。 | ||||||||
|
投稿日時: 2006-05-30 22:01
どうせ渡す予定であるのならば、手間は殆どないですよ。 ログイン認証だけ抽出されてれば、そこに投げるだけです。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |