syncfusion-winforms-combobox について
Windows Forms で Syncfusion SfComboBox を実装するためのガイドです。データバインド、オートコンプリート、複数選択、フィルタリング、ドロップダウンのカスタマイズを扱います。
主な機能
- 01コレクションへのデータバインド
- 02オートコンプリートとフィルタリング
- 03チェックボックスとトークンによる複数選択
- 04並べ替えとドロップダウンのカスタマイズ
- 05テーマとウォーターマーク
活用シーン
- 01住所選択のオートコンプリート
- 02トークン形式のタグ選択
- 03大規模なドロップダウンリストの検索
- 04連動するカスケード選択
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ syncfusion/ winforms-ui-components-skills --skill syncfusion-winforms-comboboxインストール後、Claude Code で/syncfusion-winforms-comboboxを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/appearance.mdautocomplete.mddata-binding.mddropdown.mdediting.mdfiltering.mdgetting-started.mditem-height.mdlocalization.mdoverview.mdselection.mdsorting.mdtoken.mdui-automation.mdwatermark.md詳細
コンボボックスの実装
このスキルでは、Syncfusion Windows Forms の SfComboBox コントロールを実装およびカスタマイズする方法を説明します。
このスキルを使用するタイミング
- Windows Forms アプリケーションでコンボボックス/ドロップダウンコントロールが必要な場合
- Suggest、Append、SuggestAppend モードでオートコンプリート機能を実装する場合
- チェックボックスまたはトークンベースの選択で複数選択を有効にする場合
- コンボボックスをデータソース(リスト、データベース、LINQ to SQL)にバインドする場合
- ドロップダウンリストでフィルタリングまたは並べ替えを実装する場合
- ドロップダウンの外観、ウォーターマーク、またはテーマをカスタマイズする場合
- ドロップダウンのヘッダー/フッターにカスタムコントロールを追加する場合
- トークンベースの複数選択(チップ形式の入力)を実装する場合
ナビゲーションガイド
以下のリンクから、各タスクに特化したリファレンスページを開いてください。
はじめに
📄 参照先: references/getting-started.md
- アセンブリの配置と依存関係
- デザイナーまたはコードによる SfComboBox の作成
- 基本的なデータバインディングの設定
- オートコンプリートの簡単な例
- 複数選択の簡単な例
概要
📄 参照先: references/overview.md
- コンポーネントの機能と特徴
- ComboBoxAdv、MultiSelectionComboBox、ComboBoxAutoComplete との比較
- API 比較表
- SfComboBox と代替コントロールの使い分け
データバインディング
📄 参照先: references/data-binding.md
- DataSource、DisplayMember、ValueMember プロパティ
- カスタムオブジェクトとコレクションへのバインド
- Microsoft Access データベースからのバインド
- LINQ to SQL クラスからのバインド
- 複雑なデータバインディングのシナリオ
オートコンプリート
📄 参照先: references/autocomplete.md
- AutoCompleteMode:Suggest、Append、SuggestAppend
- 大文字と小文字を区別するオートコンプリート
- AutoCompleteSuggestMode:StartsWith、Contains
- オートコンプリートの遅延時間の設定
- コードの完全な例
選択
📄 参照先: references/selection.md
- 単一選択(SelectedIndex、SelectedValue、SelectedItem)
- SelectedIndexChanged イベントと SelectedValueChanged イベント
- チェックボックスを使った複数選択モード
- すべて選択機能
- 区切り文字のカスタマイズ
- 選択項目のツールチップ
- クリアボタンのカスタマイズ
トークンのサポート
📄 参照先: references/token.md
- チップ形式の選択に使う EnableToken プロパティ
- トークンの外観のカスタマイズ(TokenStyle)
- トークンの追加と削除
- トークンのキーボード操作
- トークン追跡のための SelectedValueChanged イベント
フィルタリング
📄 参照先: references/filtering.md
- カスタム述語を使う Filter プロパティ
- RefreshFilter メソッド
- フィルタリングの完全な例
- カスタムフィルター条件
並べ替え
📄 参照先: references/sorting.md
- SortDescriptors プロパティ
- 昇順と降順での並べ替え
- カスタム比較子のサポート
ドロップダウンのカスタマイズ
📄 参照先: references/dropdown.md
- 表示項目数を制限する MaxDropDownItems
- サイズ変更グリッパーを表示する AllowDropDownResize
- DropDownOpening イベントと DropDownClosing イベント
- DropDownPosition のカスタマイズ
- DropDownWidth のカスタマイズ
- カスタムヘッダー/フッターコントロールの読み込み
- カスタムコントロールの完全な例
ウォーターマーク
📄 参照先: references/watermark.md
- null 値のサポートに使う AllowNull プロパティ
- ウォーターマークテキストのカスタマイズ
- WatermarkForeColor のスタイル設定
外観とスタイル設定
📄 参照先: references/appearance.md
- ビジュアルスタイルとテーマ設定
- BackColor、ForeColor のカスタマイズ
- 境界線とフォントのカスタマイズ
- Office 2016 テーマ
編集
📄 参照先: references/editing.md
- DropDownStyle プロパティ
- 編集動作のカスタマイズ
- 読み取り専用モード
項目の高さ
📄 参照先: references/item-height.md
- ItemHeight プロパティ
- ドロップダウン項目の高さのカスタマイズ
ローカライズ
📄 参照: references/localization.md
- 文化に応じた書式設定
- リソースファイルとの統合
UI オートメーション
📄 参照: references/ui-automation.md
- アクセシビリティ機能
- スクリーンリーダーのサポート
- キーボードナビゲーション
クイックスタート
最小限の SfComboBox の例(C#):
using Syncfusion.WinForms.ListView;
namespace WindowsFormsApp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// Create SfComboBox
SfComboBox sfComboBox1 = new SfComboBox();
sfComboBox1.Location = new Point(20, 20);
sfComboBox1.Size = new Size(200, 28);
// Bind data
List<string> states = new List<string> { "Alaska", "Arizona", "California", "Colorado", "Delaware" };
sfComboBox1.DataSource = states;
this.Controls.Add(sfComboBox1);
}
}
}
オートコンプリートを使用する場合:
sfComboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
sfComboBox1.AutoCompleteSuggestMode = AutoCompleteSuggestMode.Contains;
複数選択を使用する場合:
sfComboBox1.ComboBoxMode = ComboBoxMode.MultiSelection;
sfComboBox1.AllowSelectAll = true;
一般的なパターン
パターン 1:カスタムオブジェクトとのデータバインディング
public class USState
{
public string LongName { get; set; }
public string ShortName { get; set; }
}
List<USState> states = new List<USState>
{
new USState { LongName = "California", ShortName = "CA" },
new USState { LongName = "Texas", ShortName = "TX" }
};
sfComboBox1.DataSource = states;
sfComboBox1.DisplayMember = "LongName";
sfComboBox1.ValueMember = "ShortName";
パターン 2:トークンを使った複数選択
sfComboBox1.EnableToken = true;
sfComboBox1.Style.TokenStyle.BackColor = Color.LightBlue;
sfComboBox1.Style.TokenStyle.BorderColor = Color.Blue;
パターン 3:カスタムドロップダウンヘッダー
sfComboBox1.DropDownListView.ShowHeader = true;
TextBox searchBox = new TextBox { Height = 25 };
sfComboBox1.DropDownListView.HeaderControl = searchBox;
パターン 4:述語によるフィルタリング
sfComboBox1.DropDownListView.View.Filter = (data) =>
{
return ((USState)data).LongName.StartsWith("C");
};
sfComboBox1.DropDownListView.View.RefreshFilter();
主なプロパティ
| プロパティ | 型 | 説明 |
|---|---|---|
| DataSource | object | IEnumerable データソースにバインドします |
| DisplayMember | string | 表示するプロパティ名 |
| ValueMember | string | 値として使用するプロパティ名 |
| AutoCompleteMode | enum | Suggest、Append、SuggestAppend、None |
| ComboBoxMode | enum | SingleSelection、MultiSelection |
| EnableToken | bool | トークンベースの選択を有効にします |
| AllowSelectAll | bool | 複数選択時に「すべて選択」を表示します |
| Watermark | string | 空の場合に表示するプレースホルダーテキスト |
| MaxDropDownItems | int | ドロップダウンで表示できる最大項目数 |
| ShowClearButton | bool | 選択時にクリアボタンを表示します |
| ThemeName | string | ビジュアルテーマを適用します |
一般的なユースケース
ユースケース 1:国/州の選択
住所フォームですばやく選択できるよう、オートコンプリート機能付きの国または州のドロップダウンを実装します。
ユースケース 2:タグ/カテゴリの選択
コンテンツ管理システムで複数のタグやカテゴリを選択するために、トークンを使った複数選択を使用します。
ユースケース 3:検索可能なドロップダウン
ドロップダウンのヘッダーに検索テキストボックスを追加し、大規模なリストを動的にフィルタリングします。
ユースケース 4:連動するドロップダウン
2 つ目のドロップダウンを 1 つ目の選択内容に基づいてフィルタリングする、連動するドロップダウンを実装します。
ユースケース 5:カスタム項目テンプレート
画像や複数行のテキストを含む、ドロップダウン項目のカスタム表示を作成します。
トラブルシューティング
問題: オートコンプリートが動作しない
- 解決策:
AutoCompleteModeがSuggest、Append、またはSuggestAppend(None以外)に設定されていることを確認します
問題: 複数選択のチェックボックスが表示されない
- 解決策:
ComboBoxMode = ComboBoxMode.MultiSelectionを設定します
問題: DataSource の項目が表示されない
- 解決策:
DisplayMemberがデータオブジェクトのパブリックプロパティ名と一致していることを確認します
問題: トークンが表示されない
- 解決策:
EnableToken = trueを設定し、ドロップダウンから項目を選択します
問題: ドロップダウンのサイズが変わらない
- 解決策:
AllowDropDownResizeプロパティがtrue(既定値)であることを確認します
問題: SelectedValue が null を返す
- 解決策:
ValueMemberが正しく設定されていることを確認するか、SelectedItemを直接使用します
問題: フィルタリングが動作しない
- 解決策: Filter 述語を設定した後に
DropDownListView.View.RefreshFilter()を呼び出します