GcMultiRowコントロールは文字列の検索を行うための検索ダイアログを提供します。

検索ダイアログは、ショートカットキーのアクションを実行することで表示されます。
' 検索ダイアログを表示します。
GrapeCity.Win.MultiRow.EditingActions.SearchAction.Execute(GcMultiRow1);
// 検索ダイアログを表示します。
GrapeCity.Win.MultiRow.EditingActions.SearchAction.Execute(gcMultiRow1);
また、ショートカットとして登録することで、特定のキーが押下されたときに検索ダイアログを表示することもできます。
次のコードでは、CtrlキーとFキーが押下されたときに検索ダイアログを表示します。
GcMultiRow1.ShortcutKeyManager.DefaultModeList.Add(New GrapeCity.Win.MultiRow.ShortcutKey _
(GrapeCity.Win.MultiRow.EditingActions.SearchAction, Keys.Control Or Keys.F))
gcMultiRow1.ShortcutKeyManager.DefaultModeList.Add(new GrapeCity.Win.MultiRow.ShortcutKey
(GrapeCity.Win.MultiRow.EditingActions.SearchAction, Keys.Control | Keys.F));
SearchDialogPositionプロパティを使用すると、検索ダイアログの表示位置を指定できます。
SearchDialogPositionの値 |
説明 |
NotSet |
表示されるウィンドウのStartPositionプロパティの値が適用されます。 |
CenterScreen |
画面の中央にウィンドウを表示します。 |
CenterParentForm |
アクティブなMultiRowコントロールが配置されている親フォームの中央にウィンドウを表示します。 |
CenterMultiRow |
アクティブなMultiRowコントロールの中央にウィンドウを表示します。 |
WindowsDefaultLocation |
Windowsによって自動的に決定された位置にウィンドウを表示します。 |
Manual |
SearchDialogLocationプロパティで指定した位置にウィンドウを表示します。 |
AroundCell |
アクティブセルの周辺にウィンドウを表示します。基本的にはウィンドウはアクティブセルの右下に表示しますが、表示領域がない場合は別の位置に表示します。 |
次のコードではアクティブなセルの周辺に検索ダイアログを表示します。
GcMultiRow1.SearchDialogPosition = GrapeCity.Win.MultiRow.DialogPopupPosition.AroundCell
gcMultiRow1.SearchDialogPosition = GrapeCity.Win.MultiRow.DialogPopupPosition.AroundCell;
検索ダイアログを指定した位置に表示するには、SearchDialogPositionプロパティにManualを設定して、表示位置の座標をSearchDialogLocationプロパティで指定します。
GcMultiRow1.SearchDialogPosition = GrapeCity.Win.MultiRow.DialogPopupPosition.Manual
GcMultiRow1.SearchDialogLocation = New Point(200, 200)
gcMultiRow1.SearchDialogPosition = GrapeCity.Win.MultiRow.DialogPopupPosition.Manual;
gcMultiRow1.SearchDialogLocation = new Point(200, 200);
コードを使用して文字列検索を行う場合は、Searchメソッドを使用します。
 |
- Searchメソッドを使用した場合、検索文字が見つかるとそのセルの位置を示すCellPositionオブジェクトが戻り値として返されます。
|
次のコードでは、グリッド上に表示されている文字列"MultiRow"を検索します。
Console.WriteLine(GcMultiRow1.Search("MultiRow", New GrapeCity.Win.MultiRow.CellPosition(0, 0)))
Console.WriteLine(gcMultiRow1.Search("MultiRow", new GrapeCity.Win.MultiRow.CellPosition(0, 0)));
また、Search メソッドでは次の検索条件を指定して文字列の検索ができます。
- 検索順序(Z字順/N字順)
- 検索範囲
- 大文字/小文字の区別
- 完全一致/部分一致
- ワイルドカードの使用
検索順序
検索順序をZ字順またはN字順に指定できます。検索順序はSearchOrder列挙体を使用して指定します。
Z字順の検索
Z字順に指定した場合は、行セクション内のセルを左から右へ順番に検索し、1行内のすべてのセルの検索が完了したら、次の行が検索対象になります。

行セクションが複数行で構成されている場合、Z順で1行内のすべてのセルの検索が完了したら、次の行が検索対象になります。

N字順の検索
N字順に指定した場合は、行セクションの同じ位置のセルを下方向に最後の行まで検索します。最後の行まで検索が完了したら、次のセルが検索の対象になります。

行セクションが複数行で構成されている場合も行セクションの同じ位置のセルを最後の行まで検索し、その後に検索対象のセルが変更されます。

検索範囲
検索を開始する位置、および検索を終了する位置をCellPositionオブジェクトで指定します。
次のコードでは、検索の開始位置が1行1列目のセル、終了位置が3行目の2列目のセルになります。
GcMultiRow1.CurrentCellPosition = GcMultiRow1.Search("MultiRow", New GrapeCity.Win.MultiRow.CellPosition(0, 0), New GrapeCity.Win.MultiRow.CellPosition(2, 1))
gcMultiRow1.CurrentCellPosition = gcMultiRow1.Search("MultiRow", new GrapeCity.Win.MultiRow.CellPosition(0, 0), new GrapeCity.Win.MultiRow.CellPosition(2, 1));

大文字/小文字の区別
大文字/小文字の区別を有効にすると、大文字と小文字を別の文字とみなして検索を行います。大文字/小文字を区別して検索するにはSearchFlags列挙体のMatchCaseを設定します。
完全一致
完全一致を有効にすると、検索文字とグリッド上に表示されいる文字の全体が一致しているものだけを検索します。完全一致が無効な場合は、検索文字が含まれるすべての文字列が検索対象になります。完全一致の検索をするにはSearchFlags列挙体のExactMatchを設定します。
ワイルドカードの使用
検索文字に"*"または"?"を使用してワイルドカードを含めた検索ができます。ワイルドカードを使用して検索するにはSearchFlags列挙体のUseWildCardsを設定します。
「大文字/小文字の区別」、「完全一致」、「ワイルドカードの使用」は、すべてSearchFlags列挙体を使用しますが、これらの検索条件は組み合わせて使用することができます。
次のコードは、以下の条件に一致する文字列を検索します。
- 現在のセルの位置から検索を開始
- アクティブなセルを検索対象にしない
- 大文字/小文字を区別
- 完全一致
- ワイルドカードを使用
- Z字順に検索
Imports GrapeCity.Win.MultiRow
GcMultiRow1.CurrentCellPosition = GcMultiRow1.Search("Mult*Row", GcMultiRow1.CurrentCellPosition, True, _
SearchFlags.ExactMatch Or SearchFlags.MatchCase Or SearchFlags.UseWildcards, SearchOrder.ZOrder)
using GrapeCity.Win.MultiRow;
gcMultiRow1.CurrentCellPosition = gcMultiRow1.Search("Mult*Row", gcMultiRow1.CurrentCellPosition, true,
SearchFlags.ExactMatch | SearchFlags.MatchCase | SearchFlags.UseWildcards, SearchOrder.ZOrder);