作成日: 2020/11/13 最終更新日: 2020/11/13
文書種別
使用方法
詳細
FlexGridに大きなフォントを設定すると、列データのフィルタリング時に表示されるフィルタエディタで、各種ボタンのテキストサイズも大きくなります。そのためすべてのボタンが表示できなくなり、内部的な自動調整の結果「適用ボタン」が表示されないといった現象が発生することがあります。
この現象を回避するため、以下のような方法が考えられます。
(1)フィルタエディタ画面の幅を広げる
MouseClickイベントで、C1FlexGridのFilterEditorFormの幅とMaximumSize、およびColumnFilterEditorの幅を設定します。
◎サンプルコード(VB)
(2)フィルタエディタ画面のフォントサイズを設定する
MouseClickイベントで、C1FlexGridのFilterEditorFormのフォントを設定します。
※ただし、フィルタエディタに表示されるフィルタリストのフォントは変更されませんので、ご了承下さい。
◎サンプルコード(VB)
この現象を回避するため、以下のような方法が考えられます。
(1)フィルタエディタ画面の幅を広げる
MouseClickイベントで、C1FlexGridのFilterEditorFormの幅とMaximumSize、およびColumnFilterEditorの幅を設定します。
◎サンプルコード(VB)
Imports C1.Win.C1FlexGrid
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' フィルタの設定
C1FlexGrid1.AllowFiltering = True
C1FlexGrid1.Cols(1).AllowFiltering = C1.Win.C1FlexGrid.AllowFiltering.Default
C1FlexGrid1.Font = New Font("MS 明朝", 14)
' イベントの追加
AddHandler C1FlexGrid1.MouseClick, AddressOf C1FlexGrid1_MouseClick
End Sub
Private Sub C1FlexGrid1_MouseClick(sender As Object, e As MouseEventArgs)
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 wFrm As Integer = 700
frm.MaximumSize = New Size(wFrm, 400)
frm.Width = wFrm
frm.Controls(1).Width = frm.Width
End If
Next
End If
End Sub
End Class
◎サンプルコード(C#)using C1.Win.C1FlexGrid;
namespace C1FlexGrid_frmWidth
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// フィルタの設定
c1FlexGrid1.AllowFiltering = true;
c1FlexGrid1.Cols[1].AllowFiltering = C1.Win.C1FlexGrid.AllowFiltering.Default;
c1FlexGrid1.Font = new Font("MS 明朝", 14);
// イベントの追加
c1FlexGrid1.MouseClick += c1FlexGrid1_MouseClick;
}
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"))
{
int wFrm = 700;
frm.MaximumSize = new Size(wFrm, 400);
frm.Width = wFrm;
frm.Controls[1].Width = frm.Width;
}
}
}
}
}
}
(2)フィルタエディタ画面のフォントサイズを設定する
MouseClickイベントで、C1FlexGridのFilterEditorFormのフォントを設定します。
※ただし、フィルタエディタに表示されるフィルタリストのフォントは変更されませんので、ご了承下さい。
◎サンプルコード(VB)
Imports C1.Win.C1FlexGrid
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' フィルタの設定
C1FlexGrid1.AllowFiltering = True
C1FlexGrid1.Cols(1).AllowFiltering = C1.Win.C1FlexGrid.AllowFiltering.Default
C1FlexGrid1.Font = New Font("MS 明朝", 14)
' イベントの追加
AddHandler C1FlexGrid1.MouseClick, AddressOf C1FlexGrid1_MouseClick
End Sub
Private Sub C1FlexGrid1_MouseClick(sender As Object, e As MouseEventArgs)
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
frm.Font = New Font("UI Gothic", 9)
End If
Next
End If
End Sub
End Class
◎サンプルコード(C#)using C1.Win.C1FlexGrid;
namespace C1FlexGrid_frmWidth
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// フィルタの設定
c1FlexGrid1.AllowFiltering = true;
c1FlexGrid1.Cols[1].AllowFiltering = C1.Win.C1FlexGrid.AllowFiltering.Default;
c1FlexGrid1.Font = new Font("MS 明朝", 14);
// イベントの追加
c1FlexGrid1.MouseClick += c1FlexGrid1_MouseClick;
}
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"))
{
frm.Font = new Font("UI Gothic", 9);
}
}
}
}
}
}
関連情報
旧文書番号
86188