作成日: 2021/02/25 最終更新日: 2021/02/25
文書種別
使用方法
詳細
ヘッダー(固定行)にチェックボックスを設定するための専用の機能は用意されていないため、以下のいずれかのコードを用いて設定します。
【方法A】
ブール型を指定したカスタムスタイルを作成し、ヘッダーセルのスタイルとして設定します。
【方法B】
セル範囲のStyleNew.DataTypeを、ブール型に指定します。
なお、ヘッダーセルのクリックで列全体のON/OFFを一括して切り替えるには、CellCheckedイベントを使用し、手動ですべての行のチェック状態を設定する方法が考えられます。上記の方法Aを使用し、1列目のチェックボックスのON/OFFを一括して切り替えるサンプルコード全体を以下に記載します。
◎サンプルコード(VB)
【方法A】
ブール型を指定したカスタムスタイルを作成し、ヘッダーセルのスタイルとして設定します。
c1FlexGrid1.Styles.Add("CheckBoxStyle");
c1FlexGrid1.Styles["CheckBoxStyle"].DataType = typeof(Boolean);
c1FlexGrid1.Styles["CheckBoxStyle"].ImageAlign = ImageAlignEnum.CenterCenter;
c1FlexGrid1.SetCellStyle(0, 1, "CheckBoxStyle");
【方法B】
セル範囲のStyleNew.DataTypeを、ブール型に指定します。
c1FlexGrid1.GetCellRange(0, 1).StyleNew.DataType = typeof(Boolean);
c1FlexGrid1.GetCellRange(0, 1).Style.ImageAlign = ImageAlignEnum.CenterCenter;
なお、ヘッダーセルのクリックで列全体のON/OFFを一括して切り替えるには、CellCheckedイベントを使用し、手動ですべての行のチェック状態を設定する方法が考えられます。上記の方法Aを使用し、1列目のチェックボックスのON/OFFを一括して切り替えるサンプルコード全体を以下に記載します。
◎サンプルコード(VB)
Imports C1.Win.C1FlexGrid
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' 第1列をブール型に設定
C1FlexGrid1.Cols(1).DataType = GetType(Boolean)
' 列ヘッダーにチェックボックスを設定
C1FlexGrid1.Styles.Add("CheckBoxStyle")
C1FlexGrid1.Styles("CheckBoxStyle").DataType = GetType(Boolean)
C1FlexGrid1.Styles("CheckBoxStyle").ImageAlign = ImageAlignEnum.CenterCenter
C1FlexGrid1.SetCellStyle(0, 1, "CheckBoxStyle")
End Sub
Private Sub C1FlexGrid1_CellChecked(sender As Object, e As RowColEventArgs) Handles C1FlexGrid1.CellChecked
If e.Row = 0 AndAlso e.Col = 1 Then
For row As Integer = C1FlexGrid1.Rows.Fixed To C1FlexGrid1.Rows.Count - 1
C1FlexGrid1.SetCellCheck(row, 1, C1FlexGrid1.GetCellCheck(e.Row, e.Col))
Next
End If
End Sub
End Class
◎サンプルコード(C#)using C1.Win.C1FlexGrid;
namespace prj_C1FlexGrid
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// 第1列をブール型に設定
c1FlexGrid1.Cols[1].DataType = typeof(Boolean);
// 列ヘッダーにチェックボックスを設定
c1FlexGrid1.Styles.Add("CheckBoxStyle");
c1FlexGrid1.Styles["CheckBoxStyle"].DataType = typeof(Boolean);
c1FlexGrid1.Styles["CheckBoxStyle"].ImageAlign = ImageAlignEnum.CenterCenter;
c1FlexGrid1.SetCellStyle(0, 1, "CheckBoxStyle");
}
private void c1FlexGrid1_CellChecked(object sender, RowColEventArgs e)
{
if (e.Row == 0 && e.Col == 1)
{
for (int row = c1FlexGrid1.Rows.Fixed; row <= (c1FlexGrid1.Rows.Count - 1); row++)
{
c1FlexGrid1.SetCellCheck(row, 1, c1FlexGrid1.GetCellCheck(e.Row, e.Col));
}
}
}
}
}
旧文書番号
86446