PowerTools SPREAD for Windows Forms 10.0J
オートコンプリートとオートフィルタ(GcComboBox型セル)

オートコンプリート機能を利用すると入力文字列を自動的に補完することが可能です。URL、住所、ファイル名、コマンドなどを頻繁に入力する場合に特に有効です。
また、テキストボックスに入力する値によって、リストボックスに登録されている項目をフィルタリングするオートフィルタ機能も提供されています。

オートコンプリート機能

AutoCompleteSourceAutoCompleteModeAutoCompleteCustomSourceの各プロパティを利用して、オートコンプリート機能を利用することが可能です。

オートコンプリートウィンドウのスタイル

AutoCompleteInfoクラスを利用すると、オートコンプリート機能で表示されるリストのスタイルを設定することが可能です。

検索モードの設定

AutoCompleteInfo クラスには、オートコンプリート機能で利用する検索モードを設定するMatchingMode プロパティがあり、6種類の検索方法から選択することが可能です。

MatchingModeの値 説明
MatchStartWith 前方一致 大文字/小文字の区別なし 全角/半角/ひらがな/カタカナ/カタカナの区別あり で検索します
MatchAll 部分一致 大文字/小文字の区別なし 全角/半角/ひらがな/カタカナ/カタカナの区別あり で検索します
AmbiguousMatchStartWith 前方一致 大文字/小文字の区別なし 全角/半角/ひらがな/カタカナ/カタカナの区別なし で検索します
AmbiguousMatchAll 部分一致 大文字/小文字の区別なし 全角/半角/ひらがな/カタカナ/カタカナの区別なし で検索します
ExactMatchStartWith 前方一致 大文字/小文字の区別あり 全角/半角/ひらがな/カタカナ/カタカナの区別あり で検索します
ExactMatchAll 部分一致 大文字/小文字の区別あり 全角/半角/ひらがな/カタカナ/カタカナの区別あり で検索します

  • AutoCompleteMatchingModeプロパティのうち、部分一致を行うMatchAll、AmbiguousMatchAll、およびExactMatchAllはAutoCompleteMode プロパティがSuggestAppend、Appendのときにはサポートされません。
    AutoCompleteMatchingModeプロパティとAutoCompleteModeプロパティの設定がサポートされない組み合わせの場合、次のような動作が行われます。
    • AutoCompleteModeプロパティが先に設定され、その後AutoCompleteMatchingModeプロパティが設定された場合は、 AutoCompleteModeプロパティがNoneに設定されます。
    • AutoCompleteMatchingMode プロパティが先に設定され、その後AutoCompleteModeプロパティが設定された場合は、 例外が発生します。
  • 候補リスト内に同じ候補が存在した場合には、あとの候補が検索対象になります。

次のサンプルコードは、コンボコントロールのオートコンプリート機能の設定例です。

C#
コードのコピー
gcComboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
gcComboBox1.AutoCompleteSource = AutoCompleteSource.ListItems;
gcComboBox1.AutoComplete.HighlightMatchedText = true;
gcComboBox1.AutoComplete.HighlightStyle.BackColor = Color.AliceBlue;
gcComboBox1.AutoComplete.MatchingMode = GrapeCity.Win.Spread.InputMan.CellType.AutoCompleteMatchingMode.ExactMatchStartWith;
Visual Basic
コードのコピー
gcComboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend
gcComboBox1.AutoCompleteSource = AutoCompleteSource.ListItems
gcComboBox1.AutoComplete.HighlightMatchedText = True
gcComboBox1.AutoComplete.HighlightStyle.BackColor = Color.AliceBlue
gcComboBox1.AutoComplete.MatchingMode = GrapeCity.Win.Spread.InputMan.CellType.AutoCompleteMatchingMode.ExactMatchStartWith
項目のオートフィルタ

GcComboBox型セルのオートフィルタ機能を使用するには、AutoFilter プロパティが参照するAutoFilterInfo クラスのEnabled プロパティをTrue に設定します。


(図) GcComboBox型セルのリスト


(図) セルに入力した値でリストの項目をフィルタ

オートフィルタ機能は、GcComboBox型セルのDropDownStyleプロパティがDropDownListに設定されている場合は無効になります。

フィルタリングの設定

MinimumPrefixLength プロパティで設定された値の文字数が入力されたときにフィルタリングを開始します。また、一度のフィルタリングで取得可能な最大項目数は、MaxFilteredItems プロパティで設定できます。さらに、Interval プロパティでフィルタリング動作を開始するまでの時間(ミリ秒)を指定することができます。

検索対象カラムの設定

オートフィルタ機能では検索対象のカラムを設定できます。MatchingSource プロパティをFilterMatchingSource.AllSubItems に設定すると、リスト内の全てのカラムを対象に検索を行い、FilterMatchingSource.ControlText を設定するとTextSubItemIndex プロパティに設定した、セルのText プロパティに使用されるカラム、もしくはTextFormat プロパティに設定した書式を対象に検索を行います。

検索モード

AutoFilterInfoクラスには、オートフィルタ機能で利用する検索モードを6種類の検索方法から設定するMatchingMode プロパティがあります。なお、この検索モードはオートコンプリート機能と共通です。

MatchingModeの値 説明
MatchStartWith 前方一致 大文字/小文字の区別なし 全角/半角/ひらがな/カタカナ/カタカナの区別あり で検索します
MatchAll 部分一致 大文字/小文字の区別なし 全角/半角/ひらがな/カタカナ/カタカナの区別あり で検索します
AmbiguousMatchStartWith 前方一致 大文字/小文字の区別なし 全角/半角/ひらがな/カタカナ/カタカナの区別なし で検索します
AmbiguousMatchAll 部分一致 大文字/小文字の区別なし 全角/半角/ひらがな/カタカナ/カタカナの区別なし で検索します
ExactMatchStartWith 前方一致 大文字/小文字の区別あり 全角/半角/ひらがな/カタカナ/カタカナの区別あり で検索します
ExactMatchAll 部分一致 大文字/小文字の区別あり 全角/半角/ひらがな/カタカナ/カタカナの区別あり で検索します

次のサンプルコードは、GcComboBox型セルのフィルタリング動作の設定例です。

C#
コードのコピー
gcComboBox1.AutoFilter.Enabled = true;
gcComboBox1.AutoFilter.Interval = 500;
gcComboBox1.AutoFilter.MaxFilteredItems = 8;
gcComboBox1.AutoFilter.MinimumPrefixLength = 1;
gcComboBox1.AutoFilter.MatchingMode = GrapeCity.Win.Spread.InputMan.CellType.AutoCompleteMatchingMode.MatchStartWith;
gcComboBox1.AutoFilter.MatchingSource = GrapeCity.Win.Spread.InputMan.CellType.FilterMatchingSource.AllSubItems;
Visual Basic
コードのコピー
gcComboBox1.AutoFilter.Enabled = True
gcComboBox1.AutoFilter.Interval = 500
gcComboBox1.AutoFilter.MaxFilteredItems = 8
gcComboBox1.AutoFilter.MinimumPrefixLength = 1
gcComboBox1.AutoFilter.MatchingMode = GrapeCity.Win.Spread.InputMan.CellType.AutoCompleteMatchingMode.MatchStartWith
gcComboBox1.AutoFilter.MatchingSource = GrapeCity.Win.Spread.InputMan.CellType.FilterMatchingSource.AllSubItems
関連トピック

 

 


© 2004-2017, GrapeCity inc. All rights reserved.