作成日: 2023/09/05 最終更新日: 2023/09/05
文書種別
使用方法
詳細
C1FlexGridのColumnPickerInfo.ShowToolButtonプロパティをTrue に設定すると、 グリッドの左上隅に歯車アイコンが表示され、列ピッカーが有効になります。列ピッカーは列名のリストを持つダイアログボックスで、どの列を表示または削除するかを指定します。
列ピッカーのリストには、デフォルトではFlexGridのすべての列が含まれます。このリストから特定の列を削除するには、ColumnPickerShowingイベントを使用し、e引数のColumnItemsの列Caption、または列インデックスを用いて、指定値と一致した場合にVisibleをFalseに設定することで対応可能です。
以下に、列キャプションが「列1」、「列2」の場合、および列インデックスが8以上の列を削除するための設定例を記載します。

◎サンプルコード(VB)
列ピッカーのリストには、デフォルトではFlexGridのすべての列が含まれます。このリストから特定の列を削除するには、ColumnPickerShowingイベントを使用し、e引数のColumnItemsの列Caption、または列インデックスを用いて、指定値と一致した場合にVisibleをFalseに設定することで対応可能です。
以下に、列キャプションが「列1」、「列2」の場合、および列インデックスが8以上の列を削除するための設定例を記載します。
◎サンプルコード(VB)
Imports C1.Win.C1FlexGrid
Imports C1.Win.C1FlexGrid.ColumnPicker
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' 列ピッカーの設定
C1FlexGrid1.ColumnContextMenuEnabled = True
C1FlexGrid1.ColumnPickerInfo.ShowToolButton = True
C1FlexGrid1.ColumnPickerInfo.ShowColumnMenuItem = True
C1FlexGrid1.ColumnPickerInfo.SearchMode = ColumnPickerSearchMode.Highlight
C1FlexGrid1.Cols(0).Width = 40
C1FlexGrid1.Cols.DefaultSize = 50
' グリッドの設定
For i = 1 To C1FlexGrid1.Cols.Count - 1
C1FlexGrid1(0, i) = $"列{i}"
Next
End Sub
Private Sub C1FlexGrid1_ColumnPickerShowing(sender As Object, e As ColumnPickerShowingArgs) Handles C1FlexGrid1.ColumnPickerShowing
For i = 0 To e.ColumnItems.Count - 1
Dim cpi As ColumnPickerItem = CType(e.ColumnItems(i), ColumnPickerItem)
If (cpi.Column.Caption = "列1") OrElse (cpi.Column.Caption = "列2") Then
e.ColumnItems(i).Visible = False
End If
If cpi.Column.Index > 7 Then
e.ColumnItems(i).Visible = False
End If
Next
End Sub
End Class
◎サンプルコード(C#)
using C1.Win.C1FlexGrid;
using C1.Win.C1FlexGrid.ColumnPicker;
namespace prj_C1FlexGrid
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// 列ピッカーの設定
c1FlexGrid1.ColumnContextMenuEnabled = true;
c1FlexGrid1.ColumnPickerInfo.ShowToolButton = true;
c1FlexGrid1.ColumnPickerInfo.ShowColumnMenuItem = true;
c1FlexGrid1.ColumnPickerInfo.SearchMode = ColumnPickerSearchMode.Highlight;
// グリッドの設定
c1FlexGrid1.Cols[0].Width = 40;
c1FlexGrid1.Cols.DefaultSize = 50;
for (var i = 1; i < c1FlexGrid1.Cols.Count; i++)
{
c1FlexGrid1[0, i] = $"列{i}";
}
}
private void c1FlexGrid1_ColumnPickerShowing(object sender, ColumnPickerShowingArgs e)
{
for (var i = 0; i < e.ColumnItems.Count; i++)
{
ColumnPickerItem cpi = (ColumnPickerItem)e.ColumnItems[i];
// 列ピッカーのリストから「列1」、「列2」を削除
if ((cpi.Column.Caption == "列1") || (cpi.Column.Caption == "列2"))
{
e.ColumnItems[i].Visible = false;
}
// 列ピッカーのリストから8列目以降を削除
if ((cpi.Column.Index) > 7)
{
e.ColumnItems[i].Visible = false;
}
}
}
}
}