- - PR -
くだらない質問ですが・・
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-08-29 13:40
this.Load += new System.EventHandler(this.MainForm_Load);
this.Activated += new System.EventHandler(this.MainForm_Activated); どっち使ったほうが正しいんでしょうか? } private void MainForm_Activated(object sender, System.EventArgs e) { if (firstActive) { return; } firstActive = true; if( ! DsUtils.IsCorrectDirectXVersion() ) { MessageBox.Show( this, "DirectX 8.1 NOT installed!", "DirectShow.NET", MessageBoxButtons.OK, MessageBoxIcon.Stop ); this.Close(); return; } } | ||||||||
|
投稿日時: 2008-08-29 13:57
別に "くだらない質問" だなんて思いませんが、件名には概要を記して頂けるとありがたいです。
それぞれイベントが起きるタイミングが違いますので、何をするかによります (それにしても Shown イベントではなくて Activated イベントなのですね...)。
この場合であればどちらのイベントも適切ではないですね。 検証の結果によって Form をすぐ閉じるくらいであれば、最初から Form のインスタンスを作成しない方が良いです。 Form のインスタンスを作成する前にチェック [wankuma.com] しましょう。 その結果 OK であれば Form のインスタンスを作成しましょう。 チェック内容が Form が表示された後でないと検証できないようなものは Shown イベントを使えば良いと思いますが、今回はその例ではないでしょう。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2008-08-29 15:17
なるほど、根本から間違っていました。Formを開いてから後のことしか目がいっておらず、program.csのMainのしょっぱなに、検証メソッド書いておけばすみますね。リンクのとおりのご指摘でした。
public static void Main() { bool chk1=chkver(); if (chk1 == false) return; Application.Run( new MainForm() ); } static bool chkver(){ if( !DsUtils.IsCorrectDirectXVersion() ) { MessageBox.Show( "DirectX 8.1 NOT installed!", "DirectShow.NET", MessageBoxButtons.OK, MessageBoxIcon.Stop ); return false; } return true; } |
1