確認や警告などのメッセージ表示を簡単に実現できます
VB.NET では VB6 と同様に MsgBox 関数を扱うことができますが .NET Framework クラスライブラリを利用した MessageBox.Show
メソッドで MsgBox 関数と同じ機能を実現することもできます
というか MsgBox 関数は実際には内部で MessageBox.Show メソッドを呼び出しているので MessageBox クラスを利用したほうが
よいでしょう
MsgBox
エラー時などの警告メッセージでは戻り値を受け取る必要はなく Call で呼び出します
表示スタイル はボタンやアイコンの種類 標準ボタン (初期状態で選択するボタン) の設定ができます
Call MsgBox("予期せぬエラーが発生しました", vbCritical)
確認メッセージとして使用する場合は 戻り値 を受け取って判定します
If MsgBox("終了します" & vbLf & "よろしいですか", vbQuestion + vbYesNo) = vbYes Then
実はこの記述は VB.NET では厳密には誤りになります
※ Option Strict を On にした場合はエラーが発生します
上記の例では 2番目の引数 (表示スタイル) を合計値で指定 (VB6 のヘルプでは合計値で指定と説明されています) しています
この記述では Integer 型で指定したことになりますが 実際にはここは MsgBoxStyle 型で指定する必要があります
この記述を VB.NET のスタイルで記述するならば 下記のようになります
If MsgBox("終了します" & vbLf & "よろしいですか", MsgBoxStyle.Question Or MsgBoxStyle.YesNo) _
= MsgBoxResult.Yes Then
メッセージボックス内に表示する文字列を改行する場合には 下記のいずれかを使用します
定数 | 値 | 内容 |
vbCr | Chr$(13) | キャリッジリターン |
vbLf | Chr$(10) | ラインフィード |
vbCrLf | Chr$(13) & Chr$(10) | キャリッジリターン+ラインフィード |
If MessageBox.Show("終了します" & vbLf & "よろしいですか", "確認メッセージ", _ MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
大きく変更になったのは 2番目の引数でメッセージのタイトルを設定している部分です
MessageBox.Show メソッドでタイトルを省略する場合には 表示スタイルやアイコンも省略する必要があります
※ VB.NET では関数のオーバーロードが可能になったので 引数を省略するという表現はちょっと違います
ちなみに MsgBox 関数では タイトルを省略するとアプリケーション名が自動的に表示されていましたが MessageBox.Show メソッド
ではタイトル部分が空白のダイアログが表示されます
また MsgBox 関数では表示スタイルを合計値で指定していましたが MessageBox.Show メソッドではそれぞれを個別に指定する
ようになりました