- PR -

同一プロジェクト内の複数フォームの表示制御について

投稿者投稿内容
s_saku
会議室デビュー日: 2006/05/30
投稿数: 14
投稿日時: 2006-05-30 15:40
はじめまして。
最近.NETを使い始めた初心者です。
過去ログに同じような質問があったら申し訳ありません(一応確認はしましたが・・・)。

VisualC# 2005
Windowsアプリケーション

社内システムを開発しています。
複数のプログラムがある為、メニュー画面を作成しようとしています。
社員によって使える範囲が変わる為、メニュー画面を表示する前にログイン画面として社員番号を入力する画面を作成しました(「Application.Run()」でログイン画面を指定)。
社員番号を入力しメニュー画面に遷移する場合、ログイン画面を「this.Close()」で閉じると、アプリケーションを終了してしまう為、「this.Hide()」で隠すようにしました(ログイン画面は、戻る必要が無いので、隠すより閉じたほうがいいような気もするんですが)。
メニュー画面につけた終了ボタンで「this.Close()」にすると、メニュー画面を閉じるだけで、アプリケーションはそのまま実行中になっているようです。
「Application.Exit()」だとアプリケーションは終了されますが、終了ボタンを押さずに、ウィンドウ右上の「閉じる」ボタンを押した場合、メニュー画面が閉じられるだけのようです。
複数のフォームがある場合、アプリケーションの終了や画面を閉じる制御はどのようにしたらよいのでしょうか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-30 15:52
引用:

s_sakuさんの書き込み (2006-05-30 15:40) より:

過去ログに同じような質問があったら申し訳ありません(一応確認はしましたが・・・)


「ApplicationContext」で、検索してみてください。

引用:

複数のプログラムがある為、メニュー画面を作成しようとしています。
社員によって使える範囲が変わる為、


対策済みかもしれませんが、各プログラムを、直接起動した時のことも考慮してくださいね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
s_saku
会議室デビュー日: 2006/05/30
投稿数: 14
投稿日時: 2006-05-30 17:17
じゃんぬねっと様、ご回答ありがとうございます。

引用:

じゃんぬねっとさんの書き込み (2006-05-30 15:52) より:
「ApplicationContext」で、検索してみてください。



過去ログがあったんですね。
参考に作ってみます。

引用:

じゃんぬねっとさんの書き込み (2006-05-30 15:52) より:
対策済みかもしれませんが、各プログラムを、直接起動した時のことも考慮してくださいね。



各プログラムは直接起動されないように隠しておこうと思っています。

ありがとうございました。
もふー。
会議室デビュー日: 2005/09/15
投稿数: 10
お住まい・勤務地: かながわ→なごやん
投稿日時: 2006-05-30 18:09
引用:

s_sakuさんの書き込み (2006-05-30 17:17) より:
各プログラムは直接起動されないように隠しておこうと思っています。


これでは、根本的な解決になっていないと思われます。
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-05-30 19:45
引用:

こりん@人口知能さんの書き込み (2006-05-30 18:09) より:
引用:

s_sakuさんの書き込み (2006-05-30 17:17) より:
各プログラムは直接起動されないように隠しておこうと思っています。


これでは、根本的な解決になっていないと思われます。


そうですね。
不正なユーザーが直接起動して動かせたらアウトですし、そういう意味での考慮ということだと思います。

#以前、同様のシステム構成を考えた時に、一番悩んだ部分だったので、個人的には、この方法にとても興味があります。
もふー。
会議室デビュー日: 2005/09/15
投稿数: 10
お住まい・勤務地: かながわ→なごやん
投稿日時: 2006-05-30 19:53
引用:

R・田中一郎さんの書き込み (2006-05-30 19:45) より:
そうですね。
不正なユーザーが直接起動して動かせたらアウトですし、そういう意味での考慮ということだと思います。

#以前、同様のシステム構成を考えた時に、一番悩んだ部分だったので、個人的には、この方法にとても興味があります。


コマンドライン引数、または、AppDomainで渡すなどして、起動時に認証する方法が取られたりしていますね。
1度ログインしたら、もう2度とログインしない運用にする必要もないと思われますので。
何度も手動でのログインは手間にしかなりませんが、バックグラウンドでの認証ならば手間はかかりませんし、セキュリティは向上しますよね。
s_saku
会議室デビュー日: 2006/05/30
投稿数: 14
投稿日時: 2006-05-30 21:50
引用:

こりん@人口知能さんの書き込み (2006-05-30 18:09) より:
引用:

s_sakuさんの書き込み (2006-05-30 17:17) より:
各プログラムは直接起動されないように隠しておこうと思っています。


これでは、根本的な解決になっていないと思われます。



確かに解決にはなっていないと思います。
社内で利用するシステムでもあり、他の部署の業務にまで手を出すようなことがないので、実行ファイルを隠しフォルダに置くだけでも違うと思っています(利用者の平均年齢も若干高く、PCに詳しい人も少ないので)。
後は、各実行ファイルに社員番号か部署番号を引数で渡そうかとも思っています。
ただ、今後のことも考えると、もっとよく考えたほうがいいんでしょうね。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-30 22:01
引用:

s_sakuさんの書き込み (2006-05-30 21:50) より:

後は、各実行ファイルに社員番号か部署番号を引数で渡そうかとも思っています。
ただ、今後のことも考えると、もっとよく考えたほうがいいんでしょうね。


どうせ渡す予定であるのならば、手間は殆どないですよ。
ログイン認証だけ抽出されてれば、そこに投げるだけです。

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

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