C# ComboBox(System.Windows.Forms.ComboBox)
ComboBoxについてです。
コンボボックスに単純に要素を追加・取得する
コンボボックスに単純に文字を表示させたい場合は、Items.Addで表示したい文字列をセットすればOKです。
- 例)リストに"AAA","BBB"を追加する
-
comboBox1.Items.Add("AAA"); comboBox1.Items.Add("BBB");
- 例)選択されたリストの文字列を取得する
-
string str = comboBox1.SelectedItem.ToString();
- 【結果例】AAAを選択した場合
- str → AAA
コンボボックスにKeyとValueを追加・取得する
表示させる文字列とは別に、内部的にはキーでデータを扱いたい場合のサンプルです。
Items.Addではどんなオブジェクトでも設定できますが、リストに表示される文字列はオブジェクトをToStringした結果です。
なので、表示用にオーバーライドしたToStringメソッドを用意して、キーは別に持たせるようにすれば実現できます。
- 例)
-
// データクラス class CmbObject { public int Key { get; set; } public string Value { get; set; } public CmbObject(int Key, string Value) { this.Key = Key; this.Value = Value; } public override string ToString() { return Value; } } // リストにKey, Value要素を追加する CmbObject obj1 = new CmbObject(1, "AAA"); CmbObject obj2 = new CmbObject(2, "BBB"); CmbObject obj3 = new CmbObject(3, "CCC"); comboBox1.Items.Add(obj1); comboBox1.Items.Add(obj2); comboBox1.Items.Add(obj3); // 選択されたリストのKeyを取得する CmbObject obj = (CmbObject)comboBox1.SelectedItem; string str = obj.Key.ToString
- 【結果例】CCCを選択した場合
- str → 3
リストの数をカウントする
- 例)リストの数を取得する
-
int i = comboBox1.Items.Count;
選択されたリストのインデックスを取得する
- 例)選択されたリストのインデックスを取得する
-
int i = comboBox1.SelectedIndex;
※インデックスは0からの連番、未選択の場合は-1が返ります。
ComboBoxのプロパティ
プロパティ | 設定値 (太字は既定値) | 意味 |
---|---|---|
その他 | ||
AutoCompleteCustomSource | (コレクション) | * |
AutoCompleteMode | None | * |
AutoCompleteSource | None | * |
FormatString | * | |
FormattingEnabled | True/False | * |
データ | ||
(ApplicationSettings) | * | |
(DataBindings) | * | |
DataSource | (なし) | * |
DisplayMember | (なし) | * |
Items | (コレクション) | リストの要素を指定する |
Tag | * | |
ValueMember | * | |
デザイン | ||
(Name) | comboBox1 | コントロール名を指定する ※プログラムからはこの名前で参照できます。 |
GenerateMember | True/False | * |
Locked | True/False | デザインモードでの編集可否を指定する True:編集不可 False:編集可 |
Modifiers | Public Protected Protected Internal Internal Private | アクセスレベルを指定する |
フォーカス | ||
CausesValidation | True/False | * |
ユーザー補助 | ||
AccessibleDescription | * | |
AccessibleName | * | |
AccessibleRole | Default None TitleBar ... | * |
動作 | ||
AllowDrop | True/False | * |
ContextMenuStrip | (なし) | * |
DrawMode | Normal OwnerDrawFixed OwnewDrawVariable | * |
DropDownHeight | 106 | * |
DropDownWidth | 121 | * |
Enabled | True/False | 活性状態を指定する |
ImeMode | NoControl ~ | * |
IntegralHeight | True/False | * |
ItemHeight | 12 | * |
MaxDropDownItems | 8 | * |
MaxLength | 0 | 入力可能文字数を指定する。 ※0は無制限 |
Sorted | True/False | リストのソートの指定 True:ソートする False:ソートしない |
TabIndex | タブ移動順を指定する | |
TabStop | True/False | タブ移動でのフォーカスの可否を指定する |
Visible | True/False | コントロールの表示/非表示を指定する |
配置 | ||
Anchor | Top,Left | * |
Dock | None *** | * |
Location | x,y | 表示位置をX座標、Y座標で指定する |
Margin | 3,3,3,3 | * |
MaximumSize | 0,0 | * |
MinimumSize | 0,0 | * |
Size | w,h | コントロールの大きさをWidth,Heightで指定する |
表示 | ||
BackColor | Window | 背景色を指定する |
Cursor | AppStarting Arrow Cross Default IBeam No SizeAll SizeNESW | マウスカーソルの形状を指定する |
DropDownStyle | Simple DropDown DropDownList | スタイルを指定する。 Simple:ドロップダウンリストが常に表示・編集可能 DropDown:編集可能ドロップダウンリスト DropDownList:編集不可ドロップダウンリスト |
FlatStyle | Flat Popup Standard System | * |
Font | MS UI Gothic, 9pt | フォントとサイズを指定する |
ForeColor | ControlText | 文字色を指定する |
RightToLeft | No Yes Inherit | |
Text | 初期表示する文字を指定する ※DropDownStyle=DropDownListの場合は無効 | |
UseWaitCursor | True/False | * |