DataGridViewの指定した列や行を固定してスクロールされないようにする
注意:DataGridViewコントロールは、.NET Framework 2.0で新しく追加されました。
列を固定するDataGridViewColumn.FrozenプロパティをTrueにすることにより、その列より左側のすべての列が、横方向のスクロールでスクロールされずに固定されるようになります。重要な列を常に表示させておきたいときなどに便利です。 2番目の列より左側を固定する例を以下に示します。このようにすると、左側の2つの列が固定され、水平方向のスクロールではスクロールされず、3番目以降の列だけがスクロールされるようになります。 'DataGridView1の左側2列を固定する DataGridView1.Columns(1).Frozen = True //DataGridView1の左側2列を固定する DataGridView1.Columns[1].Frozen = true;
ただし、DataGridView.AllowUserToOrderColumnsプロパティがTrueで列の位置を変更できる時は、固定された列を固定されていない列に移動できません(逆も同じです)。 行を固定するDataGridViewRow.FrozenプロパティをTrueにすることにより、その行より上のすべての行が、縦方向のスクロールでスクロールされずに固定されるようになります。 上部の3行を固定する例を以下に示します。このようにすると、先頭の3行が固定され、垂直方向のスクロールではスクロールされず、4番目以降の行だけがスクロールされるようになります。 'DataGridView1の上部2行を固定する DataGridView1.Rows(2).Frozen = True //DataGridView1の上部2行を固定する DataGridView1.Rows[2].Frozen = true;
指定されたセルが固定されているか調べるDataGridViewCell.Frozenプロパティにより、そのセルが固定されているかを調べることができます。 ヘルプには、「行または列の Frozen プロパティが true に設定されている場合、セルの Frozen プロパティも true となります。」とありますが、私が試した限りでは、行と列の両方のFrozenプロパティがTrueに設定されていないとセルのFrozenプロパティはTrueにならないようでした。 If DataGridView1(0, 0).Frozen Then Console.WriteLine("(0, 0)のセルは固定されています。") End If
if (DataGridView1[0, 0].Frozen)
Console.WriteLine("(0, 0)のセルは固定されています。");
|
|
Copyright(C) DOBON!. All rights reserved.
|