syncfusion-winforms-messagebox について
Windows Forms アプリで Syncfusion の MessageBoxAdv を実装するためのスキルです。テーマ、アイコン、詳細表示、ローカライズを設定する方法を扱い、独自のダイアログを必要とする開発者向けです。
主な機能
- 01Office と Metro のテーマ付きダイアログ
- 02組み込みアイコンとカスタムアイコン
- 03展開可能な詳細ペイン
- 04ILocalizationProvider によるローカライズ
- 05サイズ変更と右から左へのレイアウト
活用シーン
- 01変更の保存や削除の確認
- 02再試行可能なファイルエラーの表示
- 03ローカライズされた通知の表示
- 04アプリの配色に合わせたダイアログ
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ syncfusion/ winforms-ui-components-skills --skill syncfusion-winforms-messageboxインストール後、Claude Code で/syncfusion-winforms-messageboxを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/button-parameters.mdgetting-started.mdlocalization.mdmetro-customization.mdvisual-styles.md詳細
メッセージボックスの実装(MessageBoxAdv)
テーマ付きダイアログ、カスタムアイコン、展開可能な詳細情報、ローカライズ対応、外観の完全なカスタマイズ機能を備えた、Windows Forms 用の高度なメッセージボックスコントロールです。
このスキルを使用する場面
次のような場合に、このスキルを使用します。
- モーダルダイアログ:メッセージ、確認、警告、エラーをモーダルウィンドウに表示する
- テーマ付きメッセージボックス:アプリケーションのスタイルに合わせて、Office 2007/2010/2013/2016 または Metro のテーマを適用する
- カスタムアイコン:メッセージボックスに組み込みアイコンまたはカスタムアイコンを表示する
- 確認ダイアログ:はい/いいえ、OK/キャンセル、または再試行/キャンセルのユーザープロンプトを実装する
- 詳細表示:追加情報を表示する、展開可能な詳細ペインを用意する
- 多言語ダイアログ:国際対応アプリケーション向けにボタンテキストとメッセージをローカライズする
- サイズ変更可能なダイアログ:実行時にユーザーがメッセージボックスのサイズを変更できるようにする
- 右から左への表示に対応:アラビア語/ヘブライ語のアプリケーション向けに、RTL レイアウトでメッセージボックスを表示する
コンポーネントの概要
MessageBoxAdv は、標準の Windows Forms MessageBox を拡張した代替コントロールで、次の機能を提供します。
- 静的な
Show()メソッドパターン(インスタンス化は不要) - 複数のボタンの組み合わせ(Ok、OkCancel、YesNo、YesNoCancel、RetryCancel、AbortRetryIgnore)
- 組み込みアイコンとカスタムアイコンへの対応
- 複数のカラースキームを備えた 6 種類のビジュアルテーマ(15 種類以上のスタイルバリエーション)
- 追加情報を表示する、展開可能な詳細ペイン
ILocalizationProviderによる完全なローカライズ対応- グリッパーを使用した実行時のサイズ変更
- 右から左へのレイアウトへの対応
主な機能:
- ダイアログを表示する静的メソッド
MessageBoxAdv.Show() - ユーザーの応答を取得する
DialogResultの戻り値 - テーマを選択する
MessageBoxStyleプロパティ - Metro テーマをカスタマイズする
MetroColorTable - 実行時のサイズ調整を行う
CanResizeプロパティ - 詳細テキストを展開/折りたたみできる詳細表示
- サイズを指定したカスタムアイコンの読み込み
戻り値:
MessageBoxAdv は、DialogResult 列挙型の値(OK、Cancel、Yes、No、Retry、Abort、Ignore、None)を返します。
ドキュメントとナビゲーションガイド
はじめに
📄 参照: references/getting-started.md
参照する場面: 新しい実装を始めるとき、依存関係を設定するとき、初めて使用するとき、基本的な Show() メソッドを確認するとき
説明するトピック:
- アセンブリの配置(Syncfusion.Shared.Base.dll)
- NuGet パッケージのインストール(Syncfusion.Shared.Base)
- 名前空間の要件(Syncfusion.Windows.Forms)
- 静的な Show() メソッドの使用パターン
- 基本的なメッセージボックスの例
- Show() メソッドのオーバーロード
- DialogResult の戻り値の処理
- 簡単なアラートと確認の例
ボタンのパラメーターと機能
📄 参照: references/button-parameters.md
参照する場面: ボタンの組み合わせを設定するとき、アイコンを追加するとき、機能(RTL、詳細表示、サイズ変更)を有効にするとき
説明するトピック:
- キャプションバーのテキストパラメーター
- メッセージテキストパラメーター
- ボタンの組み合わせ(MessageBoxButtons enum:OK、OKCancel、YesNo、YesNoCancel、RetryCancel、AbortRetryIgnore)
- アイコンへの対応(MessageBoxIcon enum:Asterisk、Error、Exclamation、Hand、Information、None、Question、Stop、Warning)
- カスタムアイコンの読み込み(Size を指定する Image パラメーター)
- 右から左への表示への対応(RightToLeft プロパティ)
- 詳細表示(「Details」ボタンで展開/折りたたみできる詳細ペイン)
- サイズ変更への対応(右下のグリッパーを使用する CanResize プロパティ)
- 各ボタンタイプの完全な例
- アイコンの配置とサイズ
ビジュアルスタイルとテーマ
📄 参照: references/visual-styles.md
参照するタイミング: テーマを適用するとき、アプリケーションのスタイルに合わせるとき、Office の配色を使用するとき
対象トピック:
- MessageBoxStyle プロパティ(Default、Office2007、Office2010、Metro、Office2013、Office2016)
- Default テーマ
- 配色(Black、Blue、Silver、Managed)を使用した Office2007 テーマ
- 配色(Black、Blue、Silver、Managed)を使用した Office2010 テーマ
- Metro テーマ(モダンなフラットデザイン)
- Office2013 テーマ(DarkGray、LightGray、White)
- Office2016 テーマ(Colorful、White、DarkGray)
- テーマ列挙型の使用方法(Office2007Theme、Office2010Theme、Office2013Theme、Office2016Theme)
- Managed の色のカスタマイズ(Office2007Colors.ApplyManagedColors、Office2010Colors.ApplyManagedColors)
- すべてのテーマと配色の完全なサンプル
Metro テーマのカスタマイズ
📄 参照: references/metro-customization.md
参照するタイミング: Metro テーマの色をカスタマイズするとき、メッセージボックスにブランドを反映するとき、企業カラーに合わせるとき
対象トピック:
- MetroColorTable クラスの概要
- ForeColor プロパティ(メッセージテキストの色)
- BackColor プロパティ(ダイアログの背景色)
- BorderColor プロパティ(ダイアログの境界線の色)
- CaptionBarColor プロパティ(タイトルバーの背景色)
- CaptionForeColor プロパティ(タイトルバーのテキスト色)
- ボタンの背景色(OKButtonBackColor、YesButtonBackColor、NoButtonBackColor、CancelButtonBackColor、RetryButtonBackColor、AbortButtonBackColor、IgnoreButtonBackColor)
- ボタンの前景色(ボタンテキストの色)
- CloseButtonColor と CloseButtonHoverColor
- Metro のカスタマイズ例
- 色を調和させるためのベストプラクティス
- ブランドに合わせたカスタムメッセージボックスの作成
ローカライズのサポート
📄 参照: references/localization.md
参照するタイミング: 多言語アプリケーションを実装するとき、ボタンテキストをローカライズするとき、国際展開するとき
対象トピック:
- ローカライズの概要とワークフロー
- ILocalizationProvider インターフェースの実装
- LocalizationProvider.Provider プロパティの初期化
- GetLocalizedString() メソッドの実装
- ResourceIdentifiers クラスの定数(Yes、No、OK、Cancel、Retry、Abort、Ignore、Details、Close)
- カルチャ固有の文字列マッピング
- InitializeComponent の前の初期化
- リソース検索の switch 文パターン
- ローカライズの完全な例(ドイツ語、スペイン語、フランス語)
- 多言語サポートのベストプラクティス
- カスタム Localizer クラスの作成
クイックスタートの例
Metro テーマを使用した基本的なメッセージボックス
C#:
using Syncfusion.Windows.Forms;
// Set Metro theme globally
MessageBoxAdv.MessageBoxStyle = MessageBoxAdv.Style.Metro;
// Display simple message box
MessageBoxAdv.Show(this, "File saved successfully!", "Success",
MessageBoxButtons.OK, MessageBoxIcon.Information);
// Confirmation dialog with Yes/No
DialogResult result = MessageBoxAdv.Show(this, "Save changes?", "File Modified",
MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
// Save changes
}
VB.NET:
Imports Syncfusion.Windows.Forms
' Set Metro theme globally
MessageBoxAdv.MessageBoxStyle = MessageBoxAdv.Style.Metro
' Display simple message box
MessageBoxAdv.Show(Me, "File saved successfully!", "Success", _
MessageBoxButtons.OK, MessageBoxIcon.Information)
' Confirmation dialog with Yes/No
Dim result As DialogResult = MessageBoxAdv.Show(Me, "Save changes?", "File Modified", _
MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If result = DialogResult.Yes Then
' Save changes
End If
一般的なパターン
パターン 1:ファイル保存の確認ダイアログ
シナリオ: 閉じる前に変更を保存するようユーザーに促します
C#:
using Syncfusion.Windows.Forms;
// Set Office2016 Colorful theme
MessageBoxAdv.MessageBoxStyle = MessageBoxAdv.Style.Office2016;
MessageBoxAdv.Office2016Theme = Office2016Theme.Colorful;
// Show confirmation with YesNoCancel
DialogResult result = MessageBoxAdv.Show(
this,
"Do you want to save changes to Document1.txt?",
"Unsaved Changes",
MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question
);
switch (result)
{
case DialogResult.Yes:
SaveDocument();
CloseDocument();
break;
case DialogResult.No:
CloseDocument();
break;
case DialogResult.Cancel:
// Do nothing, stay in editor
break;
}
パターン 2:カスタムアイコンと詳細表示を含むエラーメッセージ
シナリオ: 詳細なスタックトレースまたはログ情報を含むエラーを表示します
C#:
using Syncfusion.Windows.Forms;
using System.Drawing;
// Load custom error icon
Image customIcon = Image.FromFile("error_icon.png");
// Set theme
MessageBoxAdv.MessageBoxStyle = MessageBoxAdv.Style.Metro;
// Show with details view
MessageBoxAdv.Show(
this,
"Failed to connect to database server.",
"Connection Error",
MessageBoxButtons.RetryCancel,
customIcon,
new Size(48, 48),
"Error Details:\n" +
"Server: db.company.com\n" +
"Port: 1433\n" +
"Timeout: Connection timeout after 30 seconds\n" +
"Stack Trace: at System.Data.SqlClient.SqlConnection.Open()"
);
パターン 3:ローカライズされたメッセージボックス(ドイツ語)
シナリオ: ドイツ語のボタンテキストとメッセージを含むメッセージボックスを表示します
C#:
using Syncfusion.Windows.Forms;
using System.Globalization;
// Implement custom localizer
public class GermanLocalizer : ILocalizationProvider
{
public string GetLocalizedString(CultureInfo culture, string name, object obj)
{
switch (name)
{
case ResourceIdentifiers.Yes:
return "Ja";
case ResourceIdentifiers.No:
return "Nein";
case ResourceIdentifiers.OK:
return "OK";
case ResourceIdentifiers.Cancel:
return "Abbrechen";
case ResourceIdentifiers.Retry:
return "Wiederholen";
case ResourceIdentifiers.Abort:
return "Abbrechen";
case ResourceIdentifiers.Ignore:
return "Ignorieren";
case ResourceIdentifiers.Details:
return "Details";
default:
return string.Empty;
}
}
}
// Initialize localizer before showing message box
LocalizationProvider.Provider = new GermanLocalizer();
// Show localized message box
MessageBoxAdv.MessageBoxStyle = MessageBoxAdv.Style.Office2013;
MessageBoxAdv.Office2013Theme = Office2013Theme.White;
MessageBoxAdv.Show(
this,
"Möchten Sie die Änderungen speichern?",
"Datei geändert",
MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question
);
主要なプロパティ
静的プロパティ
| プロパティ | 型 | 説明 |
|---|---|---|
MessageBoxStyle | MessageBoxAdv.Style | テーマを設定します:Default、Office2007、Office2010、Metro、Office2013、Office2016 |
Office2007Theme | Office2007Theme | Office2007 の配色:Black、Blue、Silver、Managed |
Office2010Theme | Office2010Theme | Office2010 の配色:Black、Blue、Silver、Managed |
Office2013Theme | Office2013Theme | Office2013 の配色:DarkGray、LightGray、White |
Office2016Theme | Office2016Theme | Office2016 の配色:Colorful、White、DarkGray |
MetroColorTable | MessageBoxAdvMetroColorTable | Metro テーマの色をカスタマイズします |
RightToLeft | RightToLeft | RTL レイアウトを有効にします:Yes、No |
CanResize | bool | グリッパーを使用した実行時のサイズ変更を有効にします |
Show() メソッドのパラメーター
| パラメーター | 型 | 説明 |
|---|---|---|
owner | IWin32Window | 親ウィンドウ(通常は this またはフォームのインスタンス) |
text | string | 表示するメッセージテキスト |
caption | string | タイトルバーのテキスト |
buttons | MessageBoxButtons | ボタンの組み合わせ:OK、OKCancel、YesNo、YesNoCancel、RetryCancel、AbortRetryIgnore |
icon | MessageBoxIcon | 組み込みアイコン:Asterisk、Error、Exclamation、Hand、Information、None、Question、Stop、Warning |
icon | Image | カスタムアイコン画像 |
iconSize | Size | カスタムアイコンのサイズ(幅、高さ) |
details | string | 展開可能な詳細テキスト(「Details」ボタンを表示) |
戻り値
型: DialogResult
値: OK、Cancel、Yes、No、Retry、Abort、Ignore、None
一般的な使用例
1. アプリケーション終了の確認
未保存の作業がある状態で、ユーザーがアプリケーションを閉じようとした場合:
DialogResult result = MessageBoxAdv.Show(this,
"You have unsaved changes. Exit anyway?",
"Confirm Exit",
MessageBoxButtons.YesNo,
MessageBoxIcon.Warning);
if (result == DialogResult.Yes)
{
Application.Exit();
}
2. ファイル操作エラー
再試行オプション付きでエラーを表示:
DialogResult result = MessageBoxAdv.Show(this,
"File is locked by another process.",
"File Access Error",
MessageBoxButtons.RetryCancel,
MessageBoxIcon.Error);
if (result == DialogResult.Retry)
{
AttemptFileAccess();
}
3. 情報メッセージ
選択肢のないシンプルな通知:
MessageBoxAdv.Show(this,
"Backup completed successfully!",
"Backup Complete",
MessageBoxButtons.OK,
MessageBoxIcon.Information);
4. 削除の確認
破壊的な操作を確認:
DialogResult result = MessageBoxAdv.Show(this,
"Are you sure you want to delete this record? This cannot be undone.",
"Confirm Delete",
MessageBoxButtons.YesNo,
MessageBoxIcon.Exclamation);
if (result == DialogResult.Yes)
{
DeleteRecord();
}
5. テーマに合わせた企業向けダイアログ
メッセージボックスを企業のブランドイメージに合わせる:
MessageBoxAdv.MessageBoxStyle = MessageBoxAdv.Style.Metro;
MessageBoxAdv.MetroColorTable.CaptionBarColor = Color.FromArgb(0, 120, 215); // Corporate blue
MessageBoxAdv.MetroColorTable.YesButtonBackColor = Color.FromArgb(0, 120, 215);
MessageBoxAdv.MetroColorTable.NoButtonBackColor = Color.FromArgb(82, 82, 82);
MessageBoxAdv.Show(this,
"Upload to cloud storage?",
"Company Portal",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question);
追加リソース
アセンブリ: Syncfusion.Shared.Base.dll
名前空間: Syncfusion.Windows.Forms
NuGet パッケージ: Syncfusion.Shared.Base
最小 .NET Framework: 4.5
主なクラス:
MessageBoxAdv- メッセージボックスを表示するメインの静的クラスMessageBoxAdvMetroColorTable- Metro テーマの色のカスタマイズILocalizationProvider- ローカライズ用インターフェイスLocalizationProvider- ローカライズプロバイダーの登録ResourceIdentifiers- ローカライズ用のリソース文字列定数
関連スキル:
- フォームのスタイル設定とテーマ設定
- ダイアログ管理
- ユーザー入力の検証
- エラー処理パターン