C# で使う TaskDialog の注意点

過去 3 回 (その 1その 2その 3)、Windows API Code Pack による TaskDialog について紹介してきました。 最後に、私が TaskDialog を弄ってて気付いた注意点をいくつか。


コントロールの併用

これまでいろいろ紹介してきた TaskDialog のコントロールですが、併用できるものとできないものがあります。

標準ボタン (StandardButtons プロパティで設定できるもの) と TaskDialogButton の併用はできません。同じように、TaskDialogButton と TaskDialogCommandLink も併用できません。両方を Controls に追加して Show() しようとすると怒られます。

ただし、標準ボタンと TaskDialogCommandLink は併用できます。ので、こんな TaskDialog を作ることはできます。が、ユーザーに何をさせたいのかわからなくなるのでやめましょう。


Enabled = false にしても…

TaskDialogButtonBase クラスには Enabled プロパティがあるため、コントロールを非活性化することができます。が、なんと UI 上でグレーアウトしません。

おわかり頂けただろうか… わかりませんよね。はい。 2 つめの CommandLink は Enabled プロパティに false を指定しているため、押しても反応しません。が、UI がグレーアウトしないため、Enabled の true/false の区別がつきません。どうしてこんな仕様なのか…

いずれ修正される可能性はありますが、現時点の最新版 (v1.1) ではこのような見た目になってしまいます。Enabled プロパティはあまり使わない方がよさそうですね。。。


以上、TaskDialog を紹介してきました。 CommandLink など活用すれば、下手な MessageBox 出すよりよほどわかりやすいダイアログになりますので、個人的にはもっと流行って欲しいと思っていたり。。。

上記のような注意点もありますが、是非使ってみて下さい。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です