人のキモチとDialog

開発をされている方にとっては当たり前の話ですが....

Q1. こんなダイアログが出てきたとします。デフォルトボタンはどちらにするべきでしょう?

A1. 履歴を表示します、という内容からユーザーがメニュー等から選択した可能性が高いです。当然ユーザーは早く履歴を見たいわけですから、デフォルトが「キャンセル」になっていると、「OK」に変更して「OKを押す」という手間がかかってしまいます。これではユーザーは履歴表示のために面倒に感じるでしょう。

ですから、ここは「OK」ボタンをデフォルトに設定しておくのが正解です。

MessageBox.Show("履歴を表示します", "履歴表示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1)

Q2. では、このダイアログの場合はどうでしょう?

A2. ユーザーは削除したいからそのメニュー等を押してこのダイアログが出てきたと思われます。しかし、万が一間違ってこのメニューを選んでした場合、デフォルトで「OK」が選択されていた場合、誤ってそのまま「Enter」キーを押してしまったらファイルが消されてしまいます。これはいただけません。アプリケーションを作る側もこのせいで「ファイルを戻せ」なんて怒られたら感じが悪いですよね。

ですから、ここは「Cancel」が正解です。

MessageBox.Show("削除します", "削除確認", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2)

使う人の立場にたって考えるとユーザーインターフェースはどのようにするべきか見えてきますね。こういうことをアプリケーションにうまく組み込んでいきたいものです。