PowerTools MultiRow for Windows Forms 8.0J > InputManCellの使い方 > GcComboBoxCell > テキストボックスの使い方 > オートコンプリートとオートフィルタ |
オートコンプリート機能を利用すると入力文字列を自動的に補完することが可能です。URL、住所、ファイル名、コマンドなどを頻繁に入力する場合に特に有効です。
また、テキストボックスに入力する値によって、リストボックスに登録されている項目をフィルタリングするオートフィルタ機能も提供されています。
|
AutoCompleteクラスを利用すると、オートコンプリート機能で表示されるリストのスタイルを設定することが可能です。
(図) 候補リスト内のフォントと検索文字列のハイライトを設定したGcComboBoxCell
AutoCompleteクラスには、オートコンプリート機能で利用する検索モードを設定するMatchingModeプロパティがあり、6種類の検索方法から選択することが可能です。
MatchingModeの値 | 説明 |
---|---|
MatchStartWith | 前方一致 大文字/小文字の区別なし 全角/半角/ひらがな/カタカナ/カタカナの区別あり で検索します |
MatchAll | 部分一致 大文字/小文字の区別なし 全角/半角/ひらがな/カタカナ/カタカナの区別あり で検索します |
AmbiguousMatchStartWith | 前方一致 大文字/小文字の区別なし 全角/半角/ひらがな/カタカナ/カタカナの区別なし で検索します |
AmbiguousMatchAll | 部分一致 大文字/小文字の区別なし 全角/半角/ひらがな/カタカナ/カタカナの区別なし で検索します |
ExactMatchStartWith | 前方一致 大文字/小文字の区別あり 全角/半角/ひらがな/カタカナ/カタカナの区別あり で検索します |
ExactMatchAll | 部分一致 大文字/小文字の区別あり 全角/半角/ひらがな/カタカナ/カタカナの区別あり で検索します |
AutoCompleteMatchingModeプロパティのうち、部分一致を行うMatchAll、AmbiguousMatchAll、およびExactMatchAllはAutoCompleteModeプロパティがAutoCompleteMode.SuggestAppend、Append のときにはサポートされません。
|
次のサンプルコードは、GcComboBoxCellのオートコンプリート機能の設定例です。
Imports GrapeCity.Win.MultiRow Imports InputManCell = GrapeCity.Win.MultiRow.InputMan Dim GcComboBoxCell1 As New InputManCell.GcComboBoxCell() GcComboBoxCell1.DropDownStyle = MultiRowComboBoxStyle.DropDown GcComboBoxCell1.AutoCompleteMode = AutoCompleteMode.SuggestAppend GcComboBoxCell1.AutoCompleteSource = AutoCompleteSource.ListItems GcComboBoxCell1.AutoComplete.HighlightStyle.BackColor = Color.AliceBlue GcComboBoxCell1.AutoComplete.MatchingMode = GrapeCity.Win.Editors.AutoCompleteMatchingMode.ExactMatchStartWith GcMultiRow1.Template = Template.CreateGridTemplate(New Cell() {GcComboBoxCell1})
using GrapeCity.Win.MultiRow; using InputManCell = GrapeCity.Win.MultiRow.InputMan; InputManCell.GcComboBoxCell gcComboBoxCell1 = new InputManCell.GcComboBoxCell(); gcComboBoxCell1.DropDownStyle = MultiRowComboBoxStyle.DropDown; gcComboBoxCell1.AutoCompleteMode = AutoCompleteMode.SuggestAppend; gcComboBoxCell1.AutoCompleteSource = AutoCompleteSource.ListItems; gcComboBoxCell1.AutoComplete.HighlightStyle.BackColor = Color.AliceBlue; gcComboBoxCell1.AutoComplete.MatchingMode = GrapeCity.Win.Editors.AutoCompleteMatchingMode.ExactMatchStartWith; gcMultiRow1.Template = Template.CreateGridTemplate(new Cell[] { gcComboBoxCell1 });
GcComboBoxCellのAutoFilterプロパティが参照するAutoFilterクラスのEnabledプロパティをTrueに設定すると、GcComboBoxCellのオートフィルタ機能を使用できます。
(図) オートフィルタ機能でリストをフィルタしたGcComboBoxCell
オートフィルタ機能は、GcComboBoxCellのDropDownStyleプロパティがDropDownListに設定されている場合は無効になります。 |
MinimumPrefixLengthプロパティで設定された値の文字数が入力されたときにフィルタリングを開始します。また、一度のフィルタリングで取得可能な最大項目数は、MaxFilteredItemsプロパティで設定できます。さらに、Intervalプロパティでフィルタリング動作を開始するまでの時間(ミリ秒)を指定することができます。
オートフィルタ機能では検索対象のカラムを設定できます。MatchingSourceプロパティをFilterMatchingSource.AllSubItemsに設定すると、リスト内の全てのカラムを対象に検索を行い、FilterMatchingSource.ControlTextを設定するとTextSubItemIndexプロパティに設定したTextプロパティ設定に使用されるカラム、もしくはTextFormatプロパティに設定した書式を対象に検索を行います。
AutoFilterクラスには、オートフィルタ機能で利用する検索モードを6種類の検索方法から設定するMatchingModeプロパティがあります。なお、この検索モードはオートコンプリート機能と共通です。
MatchingModeの値 | 説明 |
---|---|
MatchStartWith | 前方一致 大文字/小文字の区別なし 全角/半角/ひらがな/カタカナ/カタカナの区別あり で検索します |
MatchAll | 部分一致 大文字/小文字の区別なし 全角/半角/ひらがな/カタカナ/カタカナの区別あり で検索します |
AmbiguousMatchStartWith | 前方一致 大文字/小文字の区別なし 全角/半角/ひらがな/カタカナ/カタカナの区別なし で検索します |
AmbiguousMatchAll | 部分一致 大文字/小文字の区別なし 全角/半角/ひらがな/カタカナ/カタカナの区別なし で検索します |
ExactMatchStartWith | 前方一致 大文字/小文字の区別あり 全角/半角/ひらがな/カタカナ/カタカナの区別あり で検索します |
ExactMatchAll | 部分一致 大文字/小文字の区別あり 全角/半角/ひらがな/カタカナ/カタカナの区別あり で検索します |
次のサンプルコードは、GcComboBoxCellのフィルタリング動作の設定例です。
Imports GrapeCity.Win.MultiRow Imports InputManCell = GrapeCity.Win.MultiRow.InputMan Dim GcComboBoxCell1 As New InputManCell.GcComboBoxCell() GcComboBoxCell1.Name = "GcComboBoxCell1" GcComboBoxCell1.DropDownStyle = MultiRowComboBoxStyle.DropDown GcComboBoxCell1.AutoFilter.Enabled = True GcComboBoxCell1.AutoFilter.Interval = 500 GcComboBoxCell1.AutoFilter.MaxFilteredItems = 8 GcComboBoxCell1.AutoFilter.MinimumPrefixLength = 1 GcComboBoxCell1.AutoFilter.MatchingMode = GrapeCity.Win.Editors.AutoCompleteMatchingMode.MatchStartWith GcComboBoxCell1.AutoFilter.MatchingSource = GrapeCity.Win.Editors.FilterMatchingSource.AllSubItems GcMultiRow1.Template = Template.CreateGridTemplate(New Cell() {GcComboBoxCell1})
using GrapeCity.Win.MultiRow; using InputManCell = GrapeCity.Win.MultiRow.InputMan; Template template = new Template(); InputManCell.GcComboBoxCell gcComboBoxCell1 = new InputManCell.GcComboBoxCell(); gcComboBoxCell1.Name = "gcComboBoxCell1"; gcComboBoxCell1.DropDownStyle = MultiRowComboBoxStyle.DropDown; gcComboBoxCell1.AutoFilter.Enabled = true; gcComboBoxCell1.AutoFilter.Interval = 500; gcComboBoxCell1.AutoFilter.MaxFilteredItems = 8; gcComboBoxCell1.AutoFilter.MinimumPrefixLength = 1; gcComboBoxCell1.AutoFilter.MatchingMode = GrapeCity.Win.Editors.AutoCompleteMatchingMode.MatchStartWith; gcComboBoxCell1.AutoFilter.MatchingSource = GrapeCity.Win.Editors.FilterMatchingSource.AllSubItems; gcMultiRow1.Template = Template.CreateGridTemplate(new Cell[] { gcComboBoxCell1 });