コンボボックスとかドロップダウンリストとかプルダウンリストとか言われるものが何を指しているか、ドキュメントごとに違うように見えるので調べてみた。
Windows User Experience Interaction Guidelines *1
"standard list box", "drop-down list", "combo box"という語が出てくる。
- "standard list box"は選択肢が常に表示状態のリスト
- "drop-down list"は"drop-down button"の押下時のみ選択肢が表示されるリスト
- "drop-down list"はテキスト入力不可
- "standard list box"とテキスト入力可能な"text box"を組み合わせたものを"editable list box"と呼ぶ
- "drop-down list"とテキスト入力可能な"text box"を組み合わせたものを"editable drop-down list"と呼ぶ
- "editable list box"と"editable drop-down list"をまとめて"combo box"と呼ぶ
- 図の(1)は"text box"、(2)は"drop-down button"、(3)は"drop-down list"と呼ぶ。これはWindows 7向けのデザインガイド*2でも変わっていない。
.NET API Reference *3
ComboBox
クラスとListBox
クラスがある。
ComboBox
はテキストボックスとListBox
を組み合わせたものComboBox
に対し、選択肢を常に表示状態にするかドロップダウンとして表示するかをComboBoxStyle
で選択できるDropDown
の場合、選択肢はドロップダウン表示、テキスト入力可能DropDownList
の場合、選択肢はドロップダウン表示、テキスト入力不可Simple
の場合、選択肢は常に表示、テキスト入力可能- 選択肢が常に表示で、テキストボックスが編集不可能な設定は行えない(代わりに
ListBox
を使う)
ComboBoxStyle
の説明で、図の(1)は"text portion"、(2)は"down arrow"、(3)は単に"list"と呼ぶ
MFC API Reference *4
CComboBox
クラスとCListBox
クラスがある。
- コンボボックスは"static control"または"edit control"と、"list box"を組み合わせたもの
- 編集可否等はコンボボックスのスタイルとして表現されている。
- 図の(1)はテキスト入力可能な場合は"edit control"、テキスト入力不可な場合は"static control"と呼ぶ。(2)は"drop-down arrow"、(3)は"list-box portion"と呼ぶ
Build desktop apps for Windows *5
UWPにおける"combo box"と"list box"の違いや動きについて説明している。
- "combo box"と"drop-down list"は同義(
combo box (also known as a drop-down list)
- 閉じたり(compact state)開いたり(expand)するものを"combo box"、開きっぱなしのものを"list box"と呼ぶ
- "combo box"はデフォルトではテキスト入力不可で、XAMLの
isEditable
属性でテキスト入力可否を設定できる - 図の(1)(2)を個別に説明している語はない(drop-down listを閉じている状態に表示されている(1)(2)を合わせて"header"と呼んでいる)。(3)は単に"list"と呼ぶ。
Creating a GUI With Swing *6
JComboBox
クラスとJList
クラスがある。
- 閉じたり開いたりするものを"combo box"、開きっぱなしのものを"list"と呼ぶ
- テキスト入力不可な"uneditable text box"(デフォルト)と、テキスト入力可能な"editable combo box"を合わせて"combo box(es)"と呼ぶ
- 図の(1)はテキスト入力可能な場合"text field"と呼ぶが、テキスト入力不可な場合は呼び名がない。(2)は"arrow button"、(3)は"drop-down list"と呼ぶ
考察
- テキスト編集可能なものを"combo box"、編集不可のものを"drop down list"と呼ぶという説明が良く見られる*7が、lMicrosoftの中でも統一されていない。Windows User Experience Interaction Guidelinesの説明はその通りだが、.NET APIもMFCもUWPもそのような説明にはなっていない。
- "pull-down list"という語は
learn.microsoft.com
にあるMicrosoftのドキュメントにはほとんど出てこない。見つかったのはXamarin.Macの説明*8くらい。
*1:https://web.archive.org/web/20130122085831/http://msdn.microsoft.com/en-us/library/aa511458.aspx
*2:https://learn.microsoft.com/en-us/windows/win32/uxguide/ctrl-drop
*3:https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.combobox?view=windowsdesktop-7.0
*4:https://learn.microsoft.com/en-us/cpp/mfc/reference/ccombobox-class?view=msvc-160
*5:https://learn.microsoft.com/en-us/windows/apps/design/controls/combo-box
*6:https://docs.oracle.com/javase/tutorial/uiswing/components/combobox.html
*7:https://en.wikipedia.org/wiki/Combo_box
*8:https://learn.microsoft.com/en-us/xamarin/mac/user-interface/menu