注意: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)のセルは固定されています。");
注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。