列幅を保存して再利用するには?

文書番号 : 40581     文書種別 : 使用方法     登録日 : 2017/07/26     最終更新日 : 2017/07/26
文書を印刷する
対象製品
MultiRow for Windows Forms 10.0J
詳細
ユーザーにGcMultiRowコントロールのセルのリサイズを許可しているとき、変更後の列幅を保存して再利用するには、次のようにコーディングします。

まず列幅を保存する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);
}

備考
  • ・列ヘッダセクションを複数使用している場合は、セクションごとに同様の処理が必要です。
  • ・列幅をファイルやレジストリに書き出し、読み込むには追加のコーディングが必要です。