作成日: 2021/06/03 最終更新日: 2021/06/03
文書種別
使用方法
詳細
C1FlexGridのサーチパネル(SearchPanel、C1FlexGridSearchPanelコントロール)で検索を実行すると、C1FlexGridコントロール側で、SearchApplyingイベントおよびSearchAppliedイベントが発生します。
このうちSearchAppliedイベントにて、C1FlexGridSearchPanelの検索に使用した文字列をe.Textで取得し、これを基に他のC1FlexGridのフィルタ要件を設定して同様にフィルタリングすることができます。

◎サンプルコード(VB)
このうちSearchAppliedイベントにて、C1FlexGridSearchPanelの検索に使用した文字列をe.Textで取得し、これを基に他のC1FlexGridのフィルタ要件を設定して同様にフィルタリングすることができます。

◎サンプルコード(VB)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
C1FlexGrid1.Rows.Count = 5
C1FlexGrid1(1, 1) = "aa11"
C1FlexGrid1(2, 1) = "aa22"
C1FlexGrid1(3, 1) = "bb11"
C1FlexGrid1(4, 1) = "bb22"
C1FlexGrid2.Rows.Count = 5
C1FlexGrid2(1, 1) = "aa11"
C1FlexGrid2(2, 1) = "aa22"
C1FlexGrid2(3, 1) = "bb11"
C1FlexGrid2(4, 1) = "bb22"
C1FlexGrid2.AllowFiltering = True
End Sub
Private Sub C1FlexGrid1_SearchApplied(sender As Object, e As C1.Win.C1FlexGrid.SearchAppliedEventArgs) Handles C1FlexGrid1.SearchApplied
Dim data() As String = New String() {}
Dim n As Integer = 0
Dim i As Integer
For i = 0 To C1FlexGrid2.Rows.Count - 1
If (Not (C1FlexGrid2(i, 1)) Is Nothing) Then
If C1FlexGrid2(i, 1).ToString.Contains(e.Text) Then
n = n + 1
Array.Resize(data, n)
data(n - 1) = C1FlexGrid2(i, 1).ToString
End If
End If
Next
Dim f As C1.Win.C1FlexGrid.ValueFilter = New C1.Win.C1FlexGrid.ValueFilter
f.ShowValues = data
C1FlexGrid2.Cols(1).Filter = f
C1FlexGrid2.ApplyFilters()
End Sub
◎サンプルコード(C#)
private void Form1_Load(object sender, EventArgs e)
{
c1FlexGrid1.Rows.Count = 5;
c1FlexGrid1[1, 1] = "aa11";
c1FlexGrid1[2, 1] = "aa22";
c1FlexGrid1[3, 1] = "bb11";
c1FlexGrid1[4, 1] = "bb22";
c1FlexGrid2.Rows.Count = 5;
c1FlexGrid2[1, 1] = "aa11";
c1FlexGrid2[2, 1] = "aa22";
c1FlexGrid2[3, 1] = "bb11";
c1FlexGrid2[4, 1] = "bb22";
c1FlexGrid2.AllowFiltering = true;
}
private void c1FlexGrid1_SearchApplied(object sender, C1.Win.C1FlexGrid.SearchAppliedEventArgs e)
{
string[] data = new string[0];
int n = 0;
for (int i = 1; i < c1FlexGrid2.Rows.Count; i++)
{
if (c1FlexGrid2[i, 1] != null)
{
if (c1FlexGrid2[i, 1].ToString().Contains(e.Text))
{
n = n + 1;
Array.Resize(ref data, n);
data[n - 1] = c1FlexGrid2[i, 1].ToString();
}
}
}
C1.Win.C1FlexGrid.ValueFilter f = new C1.Win.C1FlexGrid.ValueFilter();
f.ShowValues = data;
c1FlexGrid2.Cols[1].Filter = f;
c1FlexGrid2.ApplyFilters();
}