C#

[C#] メッセージボックスを実装してみる

こんにちは、リバティエンジニア[?]のFUNAです。 現役エンジニアとしてアプリケーション開発やWeb制作、SEOやブログ運営をしています。

今回は、C#でメッセージボックスを表示させてユーザーになにかを通知したり、質問する際に便利なクラスを紹介します。

C#のメッセージボックスとは(MessageBox)

そもそもメッセージボックス(MessageBox)とは、エラーメッセージを表示したり、ユーザーに確認を求める時などに使うことができます。

また、クラスの拡張機能(オーバーロード)で様々なボタンを配置したり、!(エクスクラメーションマーク)や?(クエスチョンマーク)アイコンを変えたりできとても便利な機能となっています。

エクスプローラ等を使っていると、ファイルを削除する際などに下の画像のような確認のダイアログが開きますが、それと同じようなものだと思ってください。

メッセージボックスを表示する

メッセージボックスを表示するには、MessageBoxクラス(System.Windows.Forms名前空間)のShowメソッドを使用します。

//メッセージボックスを表示する
MessageBox.Show("処理が正常に動作しませんでした。",
    "エラー",
    MessageBoxButtons.OK,
    MessageBoxIcon.Error);

このようにすると、題名が「エラー」概要が「処理が正常に動作しませんでした。」、エラーのアイコンと「OK」のボタンが表示されたメッセージボックスを表示することができます。

実際にコードを記述して表示してみてください。

基本的な記述はこのようにとても単純で簡単に記述できますね!

実際の使い方

では次に、実際に使ってみるときの例を出してみます。

冒頭で紹介したような、

このエクスプローラの表示を実現してみましょう。

この表示をする時のポイントは、

  1. タイトルが「ファイルの削除」
  2. 概要は「ファイルを削除しますか?」
  3. ボタンは2つ「はい」と「いいえ」

こんな感じですね。

2.概要は「ファイルを削除しますか?については、上記ではファイルの詳細が表示されていますが、今回は、ファイルのタイトルだけにしましょう。

これをコードで記述すると、

// 仮のファイル名を用意
string fileName = "sample.txt"

//メッセージボックスを表示する
MessageBox.Show($"ファイルを削除しますか?rn{fileName}",
    "ファイルの削除",
    MessageBoxButtons.OKCancel,
    MessageBoxIcon.Information);

このようになります。
今回は削除する予定のファイルは仮で文字列で定義しましたが、本来は、ファイル選択ダイアログのようなもので削除するファイルを取得して、ここの「fileName」にファイル名を入れましょう。

メッセージボックスのボタンの種類

メッセージボックスのボタンの種類は、上記のサンプルコードで第三引数に指定している箇所に指定します。

MessageBoxButtons説明
OK「OK」ボタンのみ。
OKCancel「OK」と「キャンセル」ボタン。
AbortRetryIgnore「中止」、「再試行」、「無視」ボタン。メッセージボックスの閉じるボタンが無効。
YesNoCancel「はい」、「いいえ」、「キャンセル」ボタン。
YesNo「はい」と「いいえ」ボタン。メッセージボックスの閉じるボタンが無効。
RetryCancel「再試行」と「キャンセル」ボタン。

メッセージボックスのアイコンの種類

続いて、メッセージボックスのアイコンの種類ですが、上記のサンプルコードで第四引数に指定している箇所に指定します。

MessageBoxIcon説明
Noneアイコンなし。メッセージボックスを表示するときに一般の警告音が鳴ります。
Hand赤丸に白いX(停止マーク)。メッセージボックスを表示するときにシステムエラーの音が鳴る。エラーメッセージを表示するときなどに使用する。
Question丸い吹き出しに疑問符記号。メッセージボックスを表示するときに「メッセージ(問い合わせ)」の音が鳴る。現在はこのアイコンの使用が推奨されておらず、下位互換性を維持するためにのみサポートされている。
Exclamation黄色い三角に感嘆符記号。メッセージボックスを表示するときに「メッセージ(警告)」の音が鳴る。ユーザーに確認をするときなどに使用する。
Asterisk丸い吹き出しに「i」。メッセージボックスを表示するときに「メッセージ(情報)」の音が鳴る。ユーザーに情報を表示するときなどに使用する。
StopHandと同じ。
ErrorHandと同じ。
WarningExclamationと同じ。
InformationAsteriskと同じ。

まとめ

今回は、C#でメッセージボックスを表示させてユーザーになにかを通知したり、質問する際に便利なクラスを紹介しました。

他にもC#についての記事をご紹介してますので、よかったら見ていってください。

[C#] Windows.Formsのイベントが発生する順番は?

[C#] ラムダ式はこれさえ見ればOK!簡単徹底解説


Copyright© FUNA BLOG , 2020 All Rights Reserved.