MESCIUS MultiRow for Windows Forms 12.0J
文字列検索

GcMultiRowコントロールでは、グリッド上に表示されている文字列を検索できます。

検索ダイアログ

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字順に指定できます。検索順序は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列挙体を使用しますが、これらの検索条件は組み合わせて使用することができます。

次のコードは、以下の条件に一致する文字列を検索します。

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);
関連トピック

 

 


© MESCIUS inc. All rights reserved.