作成日: 2022/10/25 最終更新日: 2022/10/25
文書種別
使用方法
詳細
日付型の列では、条件フィルタのフィルタエディタに、既定で "yyyy/MM/dd" 形式で日付が表示されます。
この書式を "MM/dd" 形式に変更するには、MouseClickイベントにて、内部で使用されているDateTimePickerコントロールを取得し、そのCustomFormatを "MM/dd" に設定します。
以下に、簡単な設定例を記載します。

◎サンプルコード(VB)
この書式を "MM/dd" 形式に変更するには、MouseClickイベントにて、内部で使用されているDateTimePickerコントロールを取得し、そのCustomFormatを "MM/dd" に設定します。
以下に、簡単な設定例を記載します。
◎サンプルコード(VB)
Imports C1.Win.C1FlexGrid
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' 列の設定
C1FlexGrid1.Cols(1).DataType = GetType(DateTime)
' 値の設定
For i As Integer = 0 To 4
C1FlexGrid1(i, 1) = DateTime.Today.AddDays(i)
Next
' フィルタの設定
C1FlexGrid1.AllowFiltering = True
C1FlexGrid1.Cols(1).AllowFiltering = AllowFiltering.ByCondition
End Sub
Private Sub C1FlexGrid1_MouseClick(sender As Object, e As MouseEventArgs) Handles C1FlexGrid1.MouseClick
If (C1FlexGrid1.HitTest(e.Location).Type = HitTestTypeEnum.FilterIcon) Then
For Each frm As Form In Application.OpenForms
If ((frm.Name = "FilterEditorForm") _
AndAlso (frm.GetType.ToString = "C1.Win.C1FlexGrid.FilterEditorForm")) Then
' 内部コントロールの設定変更
Dim panel As TableLayoutPanel = CType(frm.Controls(1).Controls(0), TableLayoutPanel)
If (Not (panel) Is Nothing) Then
panel.ColumnStyles(2).Width = 150
For Each c As Control In panel.Controls
If (TypeOf c Is DateTimePicker) Then
c.Width = 80
CType(c, DateTimePicker).Format = DateTimePickerFormat.Custom
CType(c, DateTimePicker).CustomFormat = "MM/dd" '条件フィルタの書式設定
End If
Next
End If
Exit For
End If
Next
End If
End Sub
End Class
◎サンプルコード(C#)
using C1.Win.C1FlexGrid;
namespace _20220622c
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// 列の設定
c1FlexGrid1.Cols[1].DataType = typeof(DateTime);
// 値の設定
for (var i = 1; i < 5; i++)
{
c1FlexGrid1[i, 1] = DateTime.Today.AddDays(i);
}
// フィルタの設定
c1FlexGrid1.AllowFiltering = true;
c1FlexGrid1.Cols[1].AllowFiltering = AllowFiltering.ByCondition;
}
private void c1FlexGrid1_MouseClick(object sender, MouseEventArgs e)
{
if (c1FlexGrid1.HitTest(e.Location).Type == HitTestTypeEnum.FilterIcon)
{
foreach (Form frm in Application.OpenForms)
{
if (frm.Name == "FilterEditorForm" && frm.GetType().ToString() == "C1.Win.C1FlexGrid.FilterEditorForm")
{
// 内部コントロールの設定変更
TableLayoutPanel panel = frm.Controls[1].Controls[0] as TableLayoutPanel;
if (panel != null)
{
panel.ColumnStyles[2].Width = 150;
foreach (Control c in panel.Controls)
{
if (c is DateTimePicker)
{
c.Width = 80;
(c as DateTimePicker).Format = DateTimePickerFormat.Custom;
(c as DateTimePicker).CustomFormat = "MM/dd"; //条件フィルタの書式設定
}
}
}
break;
}
}
}
}
}
}