ダイアログにアイコンは必要でしょうか? ここでいうアイコンとは、タイトルバーのアイコンのことです。

アイコンは必要

 ダイアログにアイコンを表示することで、何のアプリケーションのダイアログなのかがわかるようになります。私はこの理由で全てのダイアログにアイコンを表示してきました。

 しかし、ダイアログにアイコンが表示されていないものがほぼ全てです。例えば、メッセージボックスにはアイコンが表示されていません。では、なぜアイコンを表示しないのでしょうか?

アイコンは不要

 ダイアログというのは、通常オーナーを持っています。そして、オーナーであるモードレスなフォームにはアイコンが表示されています。オーナーを参照すれば、何のアプリケーションかがわかります(アイコンを見なくてもオーナーがわかれば何のアプリケーションかわかりますね)。なのでダイアログにアイコンを表示する必要はありません。

デザインガイドラインでは

 という具合に、アイコンはアプリケーションを示すものという前提で考えていましたが、デザインガイドラインではどうなのしょうか?

 だいたい次のようなことが記載されています。

  • ダイアログにはタイトルバーアイコンがありません。タイトルバーアイコンはプライマリウィンドウとセカンダリウィンドウの視覚区別として使用されます。
  • 例外:ダイアログボックスがプライマリウィンドウの(ユーティリティなどの)を実装するのに使用されて、タスクバーに表示されるなら、タイトルバーアイコンを表示します。タスクバーに表示するなら、タイトルを最適化する必要があります。

 つまり、ダイアログにはアイコンを表示しません。表示しないことで、セカンダリウィンドウ(子フォーム)であるということが判断できます。また、タスクバーにダイアログを表示するのであれば、アイコンを表示します。これはタスクバーだけを見た場合にフォームの親子関係がわからないため、アイコンでアプリケーションを特定できるようにするためだと思います。

気になったところ

 用はタスクバーに表示しないのであればアイコンはいらないよ、ということみたいですが、OpenFileDialog や SaveFileDialog などのコモンダイアログでは、タスクバーに表示されないのにアイコンが表示されています(Vista の新しいダイアログだけかもしれません)。コモンダイアログのデザインガイドラインにはアイコンについて触れていないようなので、なぜかが不明です。