R.Tanaka.Ichiro's Blog

主にC# な話題です

目次

Blog 利用状況

ニュース

認証して起動する

http://blogs.wankuma.com/rti/archive/2006/11/17/45909.aspx

以前、VB6 で似たような話があったのですが、今回は VC#2005 で、つい先ほど、こんな感じで書いてみました。


public static class Program
{
  [STAThread]
  static void Main() {
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);

    認証フォーム 認証 = new 認証フォーム();
    if (認証.認証完了()) {
      Application.Run(new メインフォーム());
    }
  }
}


認証した時だけ、メインフォームが開いて、メインフォームが動作している間、このスレッドが生き続けるってことになります。

認証完了しない場合は、メインフォームが起動せず、そのままこのスレッドが終了します。

?

あってますか?

?

認証フォームの中身は、これから書こうかな~、と思っているところです。

投稿日時 : 2006年12月25日 14:17

Feedback

# re: 認証して起動する 2006/12/25 14:25 ぽぴ王子

いま僕が作っているプログラムもそういう感じになっているので大丈夫だと思います。内緒ですが。

認証完了メソッドがTrueまたはFalseを返すという認識でいいんですよね?

あ、いま見たらこんな感じでした。
  if ((new 認証フォーム()).ShowDialog() == DialogResult.OK)
  {
   Application.Run(new メインフォーム());
  }
内緒ですが。

# re: 認証して起動する 2006/12/25 14:43 中博俊

二人とも落第
using (認証フォーム form=...
Application.Run(form),
んで認証のOKで
if( resukt == ok )
this.hide()
using(newform form ...)
this.close()
else
this.close()


こんな感じにしなくちゃだめ

# re: 認証して起動する 2006/12/25 21:18 επιστημη

中せんせぇしつもん。

なんで? R式だと認証にならないの?

# re: 認証して起動する 2006/12/25 22:21 中博俊

認証フォームが上がっているのに、Application.Runしていないのが問題。
Application.Runしていれば、画面遷移方法は別にどうでもいいですよ~~

# re: 認証して起動する 2006/12/25 22:52 ひろえむ

私も、実は前々から気になっていたので調べてみました。

確かにApplication.RunでFormを呼び出してないといろいろと弊害起きる場合があるようですねー。

実際、そのまま、ShowDialogでも問題ないようですが、Application.RunせずにShowDialogしたりるすとその内部から呼び出されたフォームとかでCloseイベントやDisposeイベントが動作しないなどの弊害があるようですよ(^^;

くわしくはこちらで・・・。
http://dobon.net/vb/dotnet/form/notopenform.html

その承認フォームから別フォームを呼ぶかどうかはわかりませんが、まま、Application.Runしといたほうが、よさそうですね(^^;

# re: 認証して起動する 2006/12/25 23:30 RUN

なるほど、非常に為になりました。

いや、まぁ、これだけのコメントを入れる理由も無いのだけど、
何となく、Applicationから呼ばれた気がして(笑)

# re: 認証して起動する 2006/12/26 0:08 中博俊

どぼんさんとこに書かれているとおりすべてはメッセージポンプのためです。
しゅっぽしゅっぽ

WPFなら不要かというとわからないんですが。(^^;;

# re: 認証して起動する 2006/12/26 9:44 とりこびと

とても勉強になります。
このエントリとコメントの流れを見るまではきっとR式(?)で書いていたと思います。

Application.Run ってしっかり者ですねぇ。

# しゅっぽしゅっぽ っていえば灯油の枕詞w

# 認証して起動する(その2) 2006/12/26 11:17 R.Tanaka.Ichiro's Blog

認証して起動する(その2)

# re: 認証して起動する 2006/12/26 11:25 R・田中一郎

ぽぴ王子 さん

>  if ((new 認証フォーム()).ShowDialog() == DialogResult.OK)

こんな風に new できるんですね・・・
今度試して見ます。

内緒ですが。

--------------------------------------------------------------
中博俊 さん

>二人とも落第

そういえば、using 使ってませんでした。

>こんな感じにしなくちゃだめ

なるほど、勉強になりました _(_*_)_
ツッコミをいただかなければ、ずっとこのまま使い続け、いつか訳のわからないバグに苦しみもがくことになるところでした。

ありがとうございました。

--------------------------------------------------------------
επιστημη さん

>なんで? R式だと認証にならないの?

R式って・・・w

--------------------------------------------------------------
ひろえむ さん

>確かにApplication.RunでFormを呼び出してないといろいろと弊害起きる場合があるようですねー。

詳しい説明をありがとうございました。
おかげさまで深く納得できました。

しかし・・・知らないでずっと使ってましたよ orz

--------------------------------------------------------------
RUN さん

>何となく、Applicationから呼ばれた気がして(笑)

山田くん、座布団もってきてw

--------------------------------------------------------------
とりこびと さん

>このエントリとコメントの流れを見るまではきっとR式(?)で書いていたと思います。

R式っていうなw

># しゅっぽしゅっぽ っていえば灯油の枕詞w

それも知りませんでしたw

# re: 認証して起動する 2006/12/27 7:35 はつね

>># しゅっぽしゅっぽ っていえば灯油の枕詞w

>それも知りませんでしたw

正式には「ちゅるちゅる」じゃないかな。発明品名称からして。

# 認証して起動する(その2) 2006/12/27 9:07 R.Tanaka.Ichiro's Blog

認証して起動する(その2)

# 2006年12月度ページビュー 2007/01/04 1:29 R.Tanaka.Ichiro's Blog

2006年12月度ページビュー

# re: スプラッシュウィンドウ 2007/02/01 13:28 R.Tanaka.Ichiro's Blog

re: スプラッシュウィンドウ

タイトル  
名前  
Url
コメント