2012-03-28 10 views
4

標準の.NETよりも多くのコントロールを持つモーダルダイアログを作成したいと思っていますMessageBoxが提供しています。私はモーダルの動作を与えるためにShowDialog()で呼び出される独自のWindowsフォームを作成しました。しかし、私はMesageBoxIcon経由でMessageBoxに付属のグラフィックスを利用したいと思います。これは可能ですか?メッセージボックスのアイコンに関連付けられているエラー/警告ウィンドウのサウンドを再生することも可能ですか(ユーザーのウィンドウ設定で設定されています)MessageBoxアイコンとサウンドを使用したカスタムWinForm

答えて

9

は、QuestionInformationWarningとして、System.Drawing.SystemIconsクラスは、システムがMessageBoxクラスが使用するアイコンを表示するを参照してください。

e.Graphics.DrawImage(SystemIcons.Question.ToBitmap(), new Point(0, 0)); 

サウンドについては、System.Media.SystemSoundsクラスを参照して関連するサウンドを再生してください。

System.Media.SystemSounds.Asterisk.Play(); 
+0

ただ、これは、システムのアイコンを描画するための素晴らしい参照したことを追加したい: のhttp:// WWWを.Codeproject.com/script/Articles/ViewDownloads.aspx?aid = 154680 –

+0

SystemIconsはImageではなくIconを返すので、Graphics.DrawIcon()やいくつかのバリエーションを使用する必要があります。 –

+0

@StealthRabbi更新されたコード。はい、 'DrawIcon'か' ToBitmap() '関数を使います。 – LarsTech

1

メッセージボックスはOSによって提供されています。恐れ入りますが、それを拡張することはできますが、多くの作業が必要です(チュートリアルについてはthis CodeProjectの記事を参照してください)。最善の策はおそらくあなたが提案したようにFormから継承したコントロールで再起動することです。アイコンにアクセスするには

、それが(そのためのドキュメントがhereである。)System.Drawing.SystemIconsクラスを使用したのと同じくらい簡単です

関連する問題