6

C#で[このダイアログをもう一度表示しない]チェックボックスが付いたダイアログを探していました。

私はグーグルでたくさん検索しましたが、エレガントな解決策を見つけることができませんでした。

ダイアログはネイティブのMessageBox.Showと同じように機能するはずですが、新しいプロパティ値(ブール値)を使用して呼び出し元に戻ります。

ありがとう。

4

3 に答える 3

8

VistaおよびWindows7アプリケーションは、標準のメッセージボックスを拡張して下部のチェックボックスをサポートする新しいTaskDialog機能を使用できます(コマンドリンク、カスタムボタンテキスト、フッターなどの他のあらゆる種類の機能とともに)。

代替テキスト

残念ながら、C#からは、これにアクセスするために相互運用を行う必要があります。高度なTaskDialogsでVista/Windows 7をターゲットにするだけの場合は、相互運用の複雑さを処理できるhttp://code.msdn.microsoft.com/WindowsAPICodePackのWindowsAPICodePackを使用してください。

XPをサポートする必要がある場合は、Vista / 7のネイティブTaskDialogsをサポートする優れたラッパーがあり、XPのWinFormsフォールバックがここにあります:http: //www.codeproject.com/KB/vista/Vista_TaskDialog_Wrapper.aspx

于 2010-11-25T07:31:28.613 に答える
3

自分で作ってみませんか。とてもシンプルなものです。クラスから派生しSystem.Windows.Forms.Formて、必要なもののように模倣するだけです。

于 2010-11-25T05:48:07.037 に答える
0

そのような既成の解決策があるとは思いません。「今後表示しない」を実装するには、dailogの外部に情報を保持し、ユーザープロファイルを作成する必要があります。

ユーザープロファイルを永続化するインフラストラクチャがあれば、そのクラスに似たクラスを簡単に作成できますmessagebox。ただし、から派生することはできませんmessagebox

于 2010-11-25T05:50:15.150 に答える