C# コンボボックスの使い方完全ガイド|項目追加・選択取得・初期値設定まで初心者向けに解説
はじめに
C#でデスクトップアプリケーションを開発する際、複数の候補から1つの項目を選択してもらう場面でよく使われるのが、コンボボックス(ComboBox)です。
たとえば、都道府県、商品カテゴリ、ユーザー権限、表示件数などを選択する画面で利用できます。コンボボックスを使えば、選択肢をコンパクトに表示できるため、画面のスペースを節約しながら入力ミスも防げます。
一方、C#のコンボボックスを初めて扱う場合、次のような点で迷うことがあります。
コンボボックスをフォームに配置する方法
選択肢を追加する方法
選択されている文字列や値を取得する方法
起動時の初期値を設定する方法
Windows FormsとWPFでの書き方の違い
本記事では、C#のコンボボックスの基本的な仕組みから、画面への配置、項目の追加、選択値の取得、初期値の設定まで、初心者にも分かりやすく解説します。
サンプルコードでは主にWindows Formsを使用します。コピーして試せるコードも紹介するため、実際にVisual Studioを操作しながら読み進めてみてください。
1. C#のコンボボックス(ComboBox)とは
1-1. コンボボックスの役割と基本的な仕組み
コンボボックスとは、複数の候補をドロップダウン形式で表示し、その中から1つの項目を選択できるコントロールです。
通常は選択中の項目だけが画面に表示され、右側にある矢印ボタンをクリックすると候補一覧が開きます。そのため、多数の選択肢を用意しても、画面を大きく占有しません。
たとえば、次のような都道府県の選択欄を作成できます。
東京都 ▼
矢印をクリックすると、次のような項目が表示されます。
東京都
神奈川県
千葉県
埼玉県
Windows FormsのComboBoxでは、主に次のプロパティやメソッドを使用します。
| 名前 | 役割 |
|---|---|
Items | コンボボックスに登録されている項目を管理する |
Items.Add | 項目を1件追加する |
Items.AddRange | 複数の項目をまとめて追加する |
SelectedIndex | 選択中の項目番号を取得・設定する |
SelectedItem | 選択中の項目そのものを取得する |
SelectedValue | データバインド時に選択中の値を取得する |
Text | コンボボックスに表示されている文字列を取得・設定する |
DropDownStyle | ユーザーが文字を直接入力できるかを設定する |
コンボボックスに登録された項目には、0から始まる番号が割り当てられます。
たとえば、次の3項目が登録されているとします。
0: 赤
1: 青
2: 緑
「青」が選択されている場合、SelectedIndexの値は1になります。
C#int index = comboBoxColor.SelectedIndex;
選択中の文字列を取得する場合は、SelectedItemやTextを使用します。
C#string selectedText = comboBoxColor.SelectedItem?.ToString() ?? string.Empty;
SelectedItemは、項目が選択されていない場合にnullになる可能性があります。そのため、?.や??を使用して安全に処理することが大切です。
1-2. リストボックスやテキストボックスとの違い
C#には、コンボボックスと似た入力コントロールとして、リストボックスやテキストボックスがあります。それぞれ用途が異なるため、画面の目的に合わせて使い分ける必要があります。
コンボボックスとリストボックスの違い
リストボックス(ListBox)は、登録されている項目を一覧として常に表示するコントロールです。
コンボボックスでは、通常時は選択中の項目だけが表示されます。一方、リストボックスでは複数の候補が最初から画面上に表示されます。
| 比較項目 | ComboBox | ListBox |
|---|---|---|
| 項目の表示方法 | クリック時に一覧を開く | 一覧を常に表示する |
| 必要な画面スペース | 少ない | 多い |
| 複数選択 | 基本的に不可 | 設定によって可能 |
| 主な用途 | 候補から1件を選択 | 候補を確認しながら選択 |
都道府県やカテゴリのように、選択肢から1つだけ選ばせたい場合はコンボボックスが適しています。
複数の商品やファイルを同時に選ばせたい場合は、リストボックスの使用を検討しましょう。
コンボボックスとテキストボックスの違い
テキストボックス(TextBox)は、ユーザーが文字列を自由に入力するためのコントロールです。
| 比較項目 | ComboBox | TextBox |
|---|---|---|
| 入力方法 | 候補から選択する | 文字を自由に入力する |
| 入力ミス | 発生しにくい | 発生する可能性がある |
| 選択肢の制限 | 可能 | 基本的にできない |
| 主な用途 | 種類や区分の選択 | 名前や住所などの入力 |
たとえば、ユーザーの氏名や住所にはテキストボックスが適しています。一方、性別、都道府県、権限など、あらかじめ候補が決まっている項目にはコンボボックスが適しています。
Windows FormsのComboBoxは、DropDownStyleの設定によって、候補の選択と自由入力を組み合わせることもできます。
代表的な設定値は次の3つです。
C#comboBox1.DropDownStyle = ComboBoxStyle.DropDown;
DropDownでは、候補からの選択だけでなく、文字列の直接入力も可能です。
C#comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
DropDownListでは、登録された候補だけを選択できます。ユーザーによる直接入力はできません。
C#comboBox1.DropDownStyle = ComboBoxStyle.Simple;
Simpleでは、入力欄と一覧が常に表示されます。
入力内容を決められた候補に限定したい場合は、一般的にDropDownListを使用します。
C#comboBoxPrefecture.DropDownStyle = ComboBoxStyle.DropDownList;
この設定により、「東京都」「神奈川県」など、開発者が登録した項目以外は入力できなくなります。
1-3. Windows FormsとWPFにおけるComboBoxの違い
C#でデスクトップアプリケーションを作成する代表的な方法には、Windows FormsとWPFがあります。
どちらにもComboBoxコントロールがありますが、画面の作成方法やデータの設定方法が異なります。
Windows FormsのComboBox
Windows Formsでは、Visual Studioのデザイナーを使ってコントロールをフォーム上に配置します。
項目は、デザイナーのItemsプロパティから追加するか、C#コードで追加できます。
C#comboBoxFruit.Items.Add("りんご");
comboBoxFruit.Items.Add("みかん");
comboBoxFruit.Items.Add("ぶどう");
複数の項目をまとめて追加する場合は、Items.AddRangeを使用できます。
C#comboBoxFruit.Items.AddRange(new object[]
{
"りんご",
"みかん",
"ぶどう"
});
Windows Formsは、マウス操作で画面を作成しやすく、初めてC#のGUIアプリケーションを開発する人にも比較的取り組みやすい仕組みです。
WPFのComboBox
WPFでは、画面を主にXAMLで定義します。
XML<ComboBox
x:Name="comboBoxFruit"
Width="200"
Height="30">
<ComboBoxItem Content="りんご" />
<ComboBoxItem Content="みかん" />
<ComboBoxItem Content="ぶどう" />
</ComboBox>
C#コードから項目を追加することもできます。
C#comboBoxFruit.Items.Add("りんご");
comboBoxFruit.Items.Add("みかん");
comboBoxFruit.Items.Add("ぶどう");
ただし、WPFではItemsSourceを使用して、配列やリストをComboBoxにバインドする方法がよく使われます。
C#var fruits = new List<string>
{
"りんご",
"みかん",
"ぶどう"
};
comboBoxFruit.ItemsSource = fruits;
選択中の項目を取得する基本的なコードは、Windows Formsとよく似ています。
C#string selectedFruit =
comboBoxFruit.SelectedItem?.ToString() ?? string.Empty;
実際のWPF開発では、画面と処理を分離するために、MVVMパターンやデータバインディングが使われることもあります。
Windows FormsとWPFの主な違い
| 比較項目 | Windows Forms | WPF |
|---|---|---|
| 画面の定義 | デザイナーとC#コード | XAMLとC#コード |
| 項目の設定 | Items.Addなど | ItemsSourceやXAML |
| データバインディング | 利用可能 | より柔軟で強力 |
| デザインの自由度 | 標準的 | 高い |
| 学習しやすさ | 初心者向け | XAMLなどの知識が必要 |
本記事では、コンボボックスの基本を理解しやすいWindows Formsを中心に解説します。
1-4. 本記事で使用する開発環境とサンプルコード
本記事では、次の環境を想定して解説します。
開発言語:C#
開発環境:Visual Studio 2022
プロジェクト:Windows Formsアプリ
フレームワーク:.NET 8
異なる.NETバージョンを使用していても、ComboBoxの基本的な操作方法はほとんど同じです。
サンプル画面には、次のコントロールを配置するものとします。
| コントロール | Name | 用途 |
|---|---|---|
| ComboBox | comboBoxFruit | 果物を選択する |
| Button | buttonShow | 選択内容を表示する |
| Label | labelResult | 選択結果を表示する |
フォームが表示されたときに項目を追加する基本的なコードは、次のとおりです。
C#namespace ComboBoxSample
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
comboBoxFruit.Items.Add("りんご");
comboBoxFruit.Items.Add("みかん");
comboBoxFruit.Items.Add("ぶどう");
comboBoxFruit.SelectedIndex = 0;
}
}
}
SelectedIndex = 0を設定すると、先頭の「りんご」が初期値として選択されます。
選択中の項目をボタンのクリック時に取得する場合は、次のように記述します。
C#private void buttonShow_Click(object sender, EventArgs e)
{
if (comboBoxFruit.SelectedItem is null)
{
labelResult.Text = "項目を選択してください。";
return;
}
string selectedFruit = comboBoxFruit.SelectedItem.ToString()!;
labelResult.Text = $"選択された項目:{selectedFruit}";
}
このコードでは、何も選択されていない場合にエラーメッセージを表示しています。
ComboBoxを扱う際は、項目が必ず選択されているとは限りません。SelectedItemがnullになる場合を考慮して処理を作成しましょう。
2. C#でコンボボックスを画面に配置する方法
2-1. Visual StudioでWindows Formsプロジェクトを作成する
最初に、Visual StudioでWindows Formsプロジェクトを作成します。
Visual Studioを起動したら、「新しいプロジェクトの作成」を選択します。プロジェクトテンプレートの一覧から、C#の「Windows Formsアプリ」を選択してください。
似た名前のテンプレートが複数表示される場合があります。利用する.NET環境に合ったものを選びましょう。
プロジェクト名の例は、次のとおりです。
ComboBoxSample
保存場所とソリューション名を指定してプロジェクトを作成すると、初期状態のフォームが表示されます。
通常、最初のフォームには次の名前が設定されています。
Form1
フォームのデザイナーが表示されていない場合は、ソリューションエクスプローラーでForm1.csを右クリックし、「デザイナーの表示」を選択します。
2-2. フォームにComboBoxコントロールを配置する
次に、フォームへComboBoxコントロールを配置します。
Visual Studioの「ツールボックス」を開き、「コモン コントロール」などのグループからComboBoxを探します。
ComboBoxをフォームへドラッグ&ドロップすると、選択欄が配置されます。
ツールボックスが表示されていない場合は、メニューから次の操作を行います。
表示 → ツールボックス
配置したコンボボックスは、マウスでドラッグして移動できます。周囲に表示されるハンドルを操作すると、横幅や高さも調整できます。
続けて、選択内容を確認するためのButtonとLabelも配置します。
画面の構成例は次のとおりです。
果物を選択してください
[りんご ▼]
[選択内容を表示]
選択された項目:
ComboBoxを配置しただけでは、選択肢は登録されていません。デザイナーまたはC#コードを使って項目を追加する必要があります。
2-3. Nameやサイズなどの基本プロパティを設定する
フォームに配置したComboBoxを選択すると、Visual Studioのプロパティウィンドウから各種設定を変更できます。
特に確認しておきたいプロパティは次のとおりです。
| プロパティ | 設定例 | 役割 |
|---|---|---|
Name | comboBoxFruit | C#コードから参照する名前 |
Location | 30, 40 | フォーム上の表示位置 |
Size | 200, 23 | コントロールの大きさ |
DropDownStyle | DropDownList | 自由入力を許可するか |
Sorted | False | 項目を自動的に並べ替えるか |
Enabled | True | 操作可能にするか |
Visible | True | 画面に表示するか |
TabIndex | 0 | Tabキーで移動する順番 |
MaxDropDownItems | 8 | 一覧に表示する最大項目数 |
Nameプロパティ
Nameは、C#コードからコントロールを操作するときに使用する名前です。
初期状態では、次のような名前が設定されています。
comboBox1
そのままでも動作しますが、コントロールの用途が分かる名前に変更すると、コードを読みやすくなります。
comboBoxFruit
comboBoxPrefecture
comboBoxCategory
たとえば、都道府県を選択するコンボボックスなら、次のように設定します。
Name:comboBoxPrefecture
C#コードでは、設定した名前を使って操作します。
C#comboBoxPrefecture.Items.Add("東京都");
DropDownStyleプロパティ
登録した項目だけを選択させたい場合は、DropDownStyleをDropDownListに設定します。
C#comboBoxFruit.DropDownStyle = ComboBoxStyle.DropDownList;
デザイナーから設定する場合は、プロパティウィンドウのDropDownStyleでDropDownListを選択します。
この設定により、ユーザーが未登録の文字列を直接入力することを防げます。
サイズの設定
コンボボックスの横幅は、SizeプロパティまたはWidthプロパティで変更できます。
C#comboBoxFruit.Width = 200;
項目の文字列が長い場合は、文字が途中で切れないように十分な横幅を設定しましょう。
ドロップダウン部分だけを広くしたい場合は、DropDownWidthを設定できます。
C#comboBoxFruit.DropDownWidth = 300;
この設定では、通常時の横幅を保ったまま、一覧を開いたときの幅だけを広げられます。
初期値の設定
先頭の項目を初期値として表示する場合は、項目を追加した後にSelectedIndexを設定します。
C#comboBoxFruit.SelectedIndex = 0;
2番目の項目を初期選択する場合は、1を指定します。
C#comboBoxFruit.SelectedIndex = 1;
何も選択されていない状態にする場合は、-1を指定します。
C#comboBoxFruit.SelectedIndex = -1;
項目追加前にSelectedIndex = 0を設定しても、選択対象が存在しないため初期値にはなりません。必ず項目を追加した後に設定してください。
2-4. コードからComboBoxを生成して配置する
Windows Formsでは、デザイナーを使わずにC#コードからComboBoxを生成することもできます。
基本的なコードは次のとおりです。
C#public Form1()
{
InitializeComponent();
var comboBoxFruit = new ComboBox();
comboBoxFruit.Name = "comboBoxFruit";
comboBoxFruit.Location = new Point(30, 30);
comboBoxFruit.Size = new Size(200, 30);
comboBoxFruit.DropDownStyle = ComboBoxStyle.DropDownList;
comboBoxFruit.Items.Add("りんご");
comboBoxFruit.Items.Add("みかん");
comboBoxFruit.Items.Add("ぶどう");
comboBoxFruit.SelectedIndex = 0;
Controls.Add(comboBoxFruit);
}
new ComboBox()でComboBoxのインスタンスを生成しています。
C#var comboBoxFruit = new ComboBox();
Locationでは、フォーム上の表示位置を指定します。
C#comboBoxFruit.Location = new Point(30, 30);
Pointの1つ目の値が左端からの距離、2つ目の値が上端からの距離です。
Sizeでは、コントロールの横幅と高さを指定します。
C#comboBoxFruit.Size = new Size(200, 30);
最後に、フォームのControlsへ追加します。
C#Controls.Add(comboBoxFruit);
この処理を忘れると、ComboBoxのインスタンスを生成しても画面には表示されません。
コードで生成したComboBoxの選択値を取得する
コードから生成したComboBoxを別のメソッドでも使用する場合は、ローカル変数ではなくフォームのフィールドとして宣言します。
C#namespace ComboBoxSample
{
public partial class Form1 : Form
{
private readonly ComboBox comboBoxFruit;
public Form1()
{
InitializeComponent();
comboBoxFruit = new ComboBox
{
Name = "comboBoxFruit",
Location = new Point(30, 30),
Size = new Size(200, 30),
DropDownStyle = ComboBoxStyle.DropDownList
};
comboBoxFruit.Items.AddRange(new object[]
{
"りんご",
"みかん",
"ぶどう"
});
comboBoxFruit.SelectedIndex = 0;
Controls.Add(comboBoxFruit);
}
}
}
ボタンのクリックイベントなどから、次のように選択項目を取得できます。
C#private void buttonShow_Click(object sender, EventArgs e)
{
string selectedText =
comboBoxFruit.SelectedItem?.ToString() ?? "未選択";
MessageBox.Show(selectedText);
}
コードによる動的な生成は、入力欄の数や内容が実行時に変わる画面で役立ちます。
画面構成が固定されている場合はデザイナー、実行時の条件によって構成を変える場合はコード生成というように使い分けるとよいでしょう。
3. コンボボックスに項目を追加する方法
3-1. デザイナーのItemsプロパティから項目を追加する
固定された選択肢を登録するだけであれば、Visual Studioのデザイナーから項目を追加する方法が簡単です。
フォームデザイナーでComboBoxを選択し、プロパティウィンドウのItemsを探します。Itemsの右側にあるボタンをクリックすると、文字列コレクションエディターが開きます。
エディターへ、1行につき1項目を入力します。
りんご
みかん
ぶどう
バナナ
入力後に「OK」をクリックすると、ComboBoxに項目が登録されます。
アプリケーションを実行してコンボボックスの矢印をクリックすると、入力した項目が一覧に表示されます。
デザイナーで追加するメリット
デザイナーから項目を追加する方法には、次のメリットがあります。
C#コードを書かずに設定できる
固定された少数の項目を簡単に登録できる
フォームの設定内容をVisual Studio上で確認できる
たとえば、選択肢が「有効」「無効」の2種類だけで、将来的にも変更されない場合に適しています。
有効
無効
デザイナーで追加する際の注意点
デザイナーによる設定は、項目が固定されている場合に適しています。
データベース、設定ファイル、Web APIなどから取得した内容を表示する場合は、実行時にC#コードから項目を追加する必要があります。
また、項目数が多い場合や頻繁に内容を変更する場合も、コードやデータバインディングによる管理が適しています。
デザイナーで設定した内容は、フォームの自動生成コードに反映されます。通常はForm1.Designer.csを直接編集せず、デザイナー上で変更してください。
デザイナーで追加した項目に初期値を設定する
デザイナーで項目を追加した場合でも、初期値はSelectedIndexで設定できます。
フォームのコンストラクターで、InitializeComponent()の後に記述します。
C#public Form1()
{
InitializeComponent();
comboBoxFruit.SelectedIndex = 0;
}
InitializeComponent()の実行時に、デザイナーで登録した項目がComboBoxへ追加されます。そのため、初期値の設定は必ずInitializeComponent()より後に記述します。
次の順番では正しく設定できない可能性があります。
C#public Form1()
{
comboBoxFruit.SelectedIndex = 0;
InitializeComponent();
}
正しい順番は次のとおりです。
C#public Form1()
{
InitializeComponent();
comboBoxFruit.SelectedIndex = 0;
}
3-2. Items.Addで項目を1件ずつ追加する
C#コードからComboBoxへ項目を1件ずつ追加する場合は、Items.Addメソッドを使用します。
C#comboBoxFruit.Items.Add("りんご");
comboBoxFruit.Items.Add("みかん");
comboBoxFruit.Items.Add("ぶどう");
Items.Addは、引数として渡した値を項目の末尾へ追加します。
フォームの起動時に項目を登録する場合は、コンストラクターのInitializeComponent()より後に記述します。
C#public Form1()
{
InitializeComponent();
comboBoxFruit.Items.Add("りんご");
comboBoxFruit.Items.Add("みかん");
comboBoxFruit.Items.Add("ぶどう");
comboBoxFruit.SelectedIndex = 0;
}
このコードを実行すると、コンボボックスに3つの項目が追加され、最初の「りんご」が初期選択されます。
Addメソッドの戻り値
Items.Addメソッドは、追加された項目のインデックスを返します。
C#int index = comboBoxFruit.Items.Add("バナナ");
追加前に3件の項目が存在していた場合、「バナナ」は4件目として追加されるため、戻り値は3になります。
C#MessageBox.Show($"追加された位置:{index}");
通常は戻り値を使用しなくても問題ありませんが、追加した項目の位置をすぐに取得したい場合に利用できます。
配列の内容をItems.Addで追加する
配列やリストの内容を、繰り返し処理で追加することもできます。
C#string[] fruits =
{
"りんご",
"みかん",
"ぶどう",
"バナナ"
};
foreach (string fruit in fruits)
{
comboBoxFruit.Items.Add(fruit);
}
List<string>でも同じように追加できます。
C#var fruits = new List<string>
{
"りんご",
"みかん",
"ぶどう",
"バナナ"
};
foreach (string fruit in fruits)
{
comboBoxFruit.Items.Add(fruit);
}
複数項目を一括で追加したい場合は、Items.AddRangeを使う方法もあります。
C#comboBoxFruit.Items.AddRange(new object[]
{
"りんご",
"みかん",
"ぶどう",
"バナナ"
});
項目を1件ずつ処理しながら追加したい場合はItems.Add、固定された複数項目をまとめて追加したい場合はItems.AddRangeが便利です。
項目の重複を防ぐ
Items.Addを複数回実行すると、同じ文字列でも重複して追加されます。
C#comboBoxFruit.Items.Add("りんご");
comboBoxFruit.Items.Add("りんご");
重複を防ぎたい場合は、Items.Containsで登録済みか確認します。
C#string newItem = "りんご";
if (!comboBoxFruit.Items.Contains(newItem))
{
comboBoxFruit.Items.Add(newItem);
}
大文字と小文字を区別せずに確認するなど、より細かい条件が必要な場合は、項目を文字列に変換して比較します。
C#string newItem = "Apple";
bool exists = comboBoxFruit.Items
.Cast<object>()
.Any(item => string.Equals(
item.ToString(),
newItem,
StringComparison.OrdinalIgnoreCase));
if (!exists)
{
comboBoxFruit.Items.Add(newItem);
}
入力された文字列を項目として追加する
テキストボックスに入力された文字列を、ボタン操作でComboBoxへ追加することもできます。
C#private void buttonAdd_Click(object sender, EventArgs e)
{
string newItem = textBoxNewItem.Text.Trim();
if (string.IsNullOrEmpty(newItem))
{
MessageBox.Show("追加する文字列を入力してください。");
return;
}
if (comboBoxFruit.Items.Contains(newItem))
{
MessageBox.Show("同じ項目がすでに登録されています。");
return;
}
comboBoxFruit.Items.Add(newItem);
comboBoxFruit.SelectedItem = newItem;
textBoxNewItem.Clear();
}
このコードでは、次の処理を行っています。
テキストボックスの前後にある空白を取り除く
未入力の場合は項目を追加しない
同じ項目が登録されていないか確認する
ComboBoxへ新しい項目を追加する
追加した項目を選択状態にする
テキストボックスを空にする
選択されている項目を取得する
Items.Addで項目を追加した後、選択されている項目を取得するにはSelectedItemを使用します。
C#private void buttonShow_Click(object sender, EventArgs e)
{
if (comboBoxFruit.SelectedItem is null)
{
MessageBox.Show("果物を選択してください。");
return;
}
string selectedFruit = comboBoxFruit.SelectedItem.ToString()!;
MessageBox.Show($"選択した果物は「{selectedFruit}」です。");
}
表示文字列だけを取得する場合は、Textプロパティも使用できます。
C#string selectedText = comboBoxFruit.Text;
ただし、DropDownStyleがDropDownの場合、Textにはユーザーが直接入力した文字列が入る可能性があります。
登録済みの項目が選択されているかを確実に確認したい場合は、SelectedIndexまたはSelectedItemを確認しましょう。
C#if (comboBoxFruit.SelectedIndex == -1)
{
MessageBox.Show("一覧から項目を選択してください。");
return;
}
初期値を文字列で設定する
指定した文字列と一致する項目を初期選択する場合は、SelectedItemを設定できます。
C#comboBoxFruit.Items.Add("りんご");
comboBoxFruit.Items.Add("みかん");
comboBoxFruit.Items.Add("ぶどう");
comboBoxFruit.SelectedItem = "みかん";
この場合、「みかん」が初期値として表示されます。
項目のインデックスが分からない場合は、FindStringExactを使って検索する方法もあります。
C#int index = comboBoxFruit.FindStringExact("みかん");
if (index >= 0)
{
comboBoxFruit.SelectedIndex = index;
}
FindStringExactは、完全に一致する文字列のインデックスを返します。一致する項目がない場合は-1を返します。
項目を削除する
追加した項目を削除する場合は、Items.Removeを使用します。
C#comboBoxFruit.Items.Remove("みかん");
選択中の項目を削除する場合は、次のように記述できます。
C#if (comboBoxFruit.SelectedItem is not null)
{
comboBoxFruit.Items.Remove(comboBoxFruit.SelectedItem);
}
インデックスを指定して削除する場合は、RemoveAtを使用します。
C#if (comboBoxFruit.Items.Count > 0)
{
comboBoxFruit.Items.RemoveAt(0);
}
すべての項目を削除する場合は、Items.Clearを使用します。
C#comboBoxFruit.Items.Clear();
項目を再読み込みする場合は、既存項目を削除してから追加すると重複を防げます。
C#private void LoadFruits()
{
comboBoxFruit.Items.Clear();
comboBoxFruit.Items.Add("りんご");
comboBoxFruit.Items.Add("みかん");
comboBoxFruit.Items.Add("ぶどう");
if (comboBoxFruit.Items.Count > 0)
{
comboBoxFruit.SelectedIndex = 0;
}
}
まとめ
C#のコンボボックスは、複数の候補から1つの項目を選択してもらうためのコントロールです。都道府県、商品カテゴリ、権限、表示件数など、選択肢があらかじめ決まっている入力欄に適しています。
Windows Formsでは、Visual StudioのデザイナーからComboBoxをフォームに配置できます。固定項目はItemsプロパティから登録でき、実行時に項目を追加する場合はItems.AddやItems.AddRangeを使用します。
C#comboBoxFruit.Items.Add("りんご");
comboBoxFruit.Items.Add("みかん");
comboBoxFruit.Items.Add("ぶどう");
先頭の項目を初期値にする場合は、項目追加後にSelectedIndexへ0を設定します。
C#comboBoxFruit.SelectedIndex = 0;
選択されている項目は、SelectedItemから取得できます。
C#string selectedText =
comboBoxFruit.SelectedItem?.ToString() ?? string.Empty;
入力内容を登録済みの候補に限定したい場合は、DropDownStyleをDropDownListに設定しましょう。
C#comboBoxFruit.DropDownStyle = ComboBoxStyle.DropDownList;
ComboBoxを扱う際は、項目が未選択になる可能性も考慮する必要があります。SelectedItemがnullではないか、またはSelectedIndexが-1ではないかを確認してから処理すると、安全なプログラムを作成できます。

