作成日: 2024/04/10 最終更新日: 2024/04/10
文書種別
使用方法
詳細
グリッドの永続化の手法を用いると、スタイルを適用したりソート/フィルタ/グループ化処理を行ったグリッドの状態やデータをファイルやメモリに保存し、後ほどそれを読み込んで復元することができます。
永続化手法でグリッドの現在の状態を保存するには、C1FlexGridのWriteXmlメソッドを使用します。このメソッドの第2パラメータに"All"を指定すると、データ、スタイル、結合範囲など、すべての設定を含めることができます。
なお、保存した状態を復元するには、C1FlexGridのReadXmlメソッドを使用します。
以下に、簡単な設定コードを記載します。
サンプルを実行し、例えば12行目~16行目のみをフィルタリングして降順で並べ替えた結果を、WriteXmlメソッドでファイルに保存し、フィルタをクリアした後、ReadXmlメソッドでこのファイルを読み込むと、ファイル保存時のグリッドの状態が復元されます。

◎サンプルコード(VB)
永続化手法でグリッドの現在の状態を保存するには、C1FlexGridのWriteXmlメソッドを使用します。このメソッドの第2パラメータに"All"を指定すると、データ、スタイル、結合範囲など、すべての設定を含めることができます。
なお、保存した状態を復元するには、C1FlexGridのReadXmlメソッドを使用します。
以下に、簡単な設定コードを記載します。
サンプルを実行し、例えば12行目~16行目のみをフィルタリングして降順で並べ替えた結果を、WriteXmlメソッドでファイルに保存し、フィルタをクリアした後、ReadXmlメソッドでこのファイルを読み込むと、ファイル保存時のグリッドの状態が復元されます。
◎サンプルコード(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.AllowSorting = AllowSortingEnum.Auto
Dim cr1 As CellRange
C1FlexGrid1.Styles.Add("Style1")
C1FlexGrid1.Styles("Style1").BackColor = Drawing.Color.LightGreen
cr1 = C1FlexGrid1.GetCellRange(0, 0, 0, (C1FlexGrid1.Cols.Count - 1))
cr1.Style = C1FlexGrid1.Styles("Style1")
' データの設定
Dim i, j As Integer
For i = 1 To C1FlexGrid1.Rows.Count - 1
For j = 1 To C1FlexGrid1.Cols.Count - 1
C1FlexGrid1(i, j) = i.ToString() + "_" + j.ToString()
Next
Next
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' ファイルに保存
C1FlexGrid1.WriteXml("../../FgState.xml", XmlOptions.All)
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
' ファイルから読み込み
C1FlexGrid1.ReadXml("../../FgState.xml")
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)
{
//フィルタとソートの許可、スタイルの設定
c1FlexGrid1.AllowFiltering = true;
c1FlexGrid1.AllowSorting = AllowSortingEnum.Auto;
CellRange cr1;
c1FlexGrid1.Styles.Add("Style1");
c1FlexGrid1.Styles["Style1"].BackColor = System.Drawing.Color.LightGreen;
cr1 = c1FlexGrid1.GetCellRange(0, 0, 0, c1FlexGrid1.Cols.Count - 1);
cr1.Style = c1FlexGrid1.Styles["Style1"];
int i, j;
var loopTo = c1FlexGrid1.Rows.Count - 1;
// データの設定
for (i = 1; i <= loopTo; i++)
{
var loopTo1 = c1FlexGrid1.Cols.Count - 1;
for (j = 1; j <= loopTo1; j++)
c1FlexGrid1[i, j] = i.ToString() + "_" + j.ToString();
}
c1FlexGrid1.Rows[0].StyleNew.BackColor = Color.LightSkyBlue;
}
private void Button1_Click(object sender, EventArgs e)
{
// ファイルに保存
c1FlexGrid1.WriteXml("../../FgState.xml", XmlOptions.All);
}
private void Button2_Click(object sender, EventArgs e)
{
// ファイルから読み込み
c1FlexGrid1.ReadXml("../../FgState.xml");
}
}
}