列幅を保存して再利用するには?
対象製品
MultiRow for Windows Forms 10.0J
詳細
ユーザーにGcMultiRowコントロールのセルのリサイズを許可しているとき、変更後の列幅を保存して再利用するには、次のようにコーディングします。
まず列幅を保存するDictionaryジェネリック クラスを用意します。
[Visual Basic]
[C#]
次に、GcMultiRowコントロールの列ヘッダのセルから幅の情報を保存します。
[Visual Basic]
[C#]
幅の情報を保存した後、任意の操作で幅を変更します。次のコードを実行すると、変更前の幅が適用されます。
[Visual Basic]
[C#]
備考
まず列幅を保存するDictionaryジェネリック クラスを用意します。
[Visual Basic]
Private _columnsWidth As New Dictionary(Of String, Integer)()
[C#]
private Dictionary<string, int> _columnsWidth = new Dictionary<string,int>();
次に、GcMultiRowコントロールの列ヘッダのセルから幅の情報を保存します。
[Visual Basic]
For Each item As GrapeCity.Win.MultiRow.Cell In GcMultiRow1.ColumnHeaders(0).Cells _columnsWidth.Add(item.Name, item.Width) Next
[C#]
foreach (var item in gcMultiRow1.ColumnHeaders[0].Cells) { _columnsWidth.Add(item.Name, item.Width); }
幅の情報を保存した後、任意の操作で幅を変更します。次のコードを実行すると、変更前の幅が適用されます。
[Visual Basic]
For Each item As KeyValuePair(Of String, Integer) In _columnsWidth Dim targetCell As GrapeCity.Win.MultiRow.Cell = GcMultiRow1.ColumnHeaders(0).Cells(item.Key) targetCell.HorizontalResize(item.Value - targetCell.Width) Next
[C#]
foreach (var item in _columnsWidth) { GrapeCity.Win.MultiRow.Cell targetCell = gcMultiRow1.ColumnHeaders[0].Cells[item.Key]; targetCell.HorizontalResize(item.Value - targetCell.Width); }
備考
- ・列ヘッダセクションを複数使用している場合は、セクションごとに同様の処理が必要です。
- ・列幅をファイルやレジストリに書き出し、読み込むには追加のコーディングが必要です。