C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

フォームが表示される前にコードを実行

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■91674 / inTopicNo.1)  フォームが表示される前にコードを実行
  
□投稿者/ ハンター (3回)-(2019/07/19(Fri) 13:22:43)

分類:[.NET 全般] 

プログラム起動時に
ユーザー名やドメイン名を調べて
登録されたものでなかったら
エラーメッセージを表示して、
プログラムを終了したいのですが、


Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load

Application.Exit()

End Sub
と書いても一瞬だけフォームが表示された後に
プログラム終了となってしまいます。

フォームが表示される前にコードを実行するにはどのようにしたら良いですか?

引用返信 編集キー/
■91675 / inTopicNo.2)  Re[1]: フォームが表示される前にコードを実行
□投稿者/ Hongliang (845回)-(2019/07/19(Fri) 13:38:32)
アプリケーションフレームワークが有効であれば(既定で有効です)、プロジェクトのプロパティからアプリケーションタブの中にある「アプリケーションイベントの表示」ボタンでApplicationEvents.vbを開くことができます。
ここでOnStartupをOverridesして、必要な判定コードを記述し、最終的に起動させないとなった場合にFalseを返すようにすればいいです。
引用返信 編集キー/
■91676 / inTopicNo.3)  Re[1]: フォームが表示される前にコードを実行
□投稿者/ 魔界の仮面弁士 (2249回)-(2019/07/19(Fri) 13:43:44)
No91674 (ハンター さん) に返信
> フォームが表示される前にコードを実行するにはどのようにしたら良いですか?


プロジェクトのプロパティの[アプリケーション]タブを開き、
[アプリケーション イベントの表示]ボタンを押します。
すると、ApplicationEvents.vb ファイルが開きますので、
MyApplication クラスの Startup イベントを記述します。


 ' このイベントは、スタートアップフォームが起動する前に呼ばれます。
 ' イベント引数 e.CommandLine から、コマンドライン パラメーターを得ることも出来ます。
 Private Sub MyApplication_Startup(sender As Object, e As StartupEventArgs) Handles Me.Startup

   If Not 登録済み判定() Then
     Call エラーメッセージ表示処理()

     'Trueをセットすると、スタートアップフォームの
     '呼びだしは行われず、そのままアプリが終了します。
     e.Cancel = True

   End If
 End Sub


もしくは、[アプリケーション フレームワークを有効にする] のチェックを外し、
自前で用意した Main メソッドから始めるという手もありますが、
VB の場合は Starup イベントを用いた方が手っ取り早いでしょう。
引用返信 編集キー/
■91683 / inTopicNo.4)  Re[2]: フォームが表示される前にコードを実行
□投稿者/ ハンター (4回)-(2019/07/20(Sat) 12:42:20)
うまくいきました

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

 
引用返信 編集キー/
■91684 / inTopicNo.5)  Re[3]: フォームが表示される前にコードを実行
□投稿者/ 33 (2回)-(2019/07/20(Sat) 12:42:24)
No91683 (ハンター さん) に返信
> うまくいきました
>
> どうもありがとうございました。
>
>  
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ