DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

DataGridViewの列の幅や行の高さをユーザーが変更できないようにする

注意:DataGridViewコントロールは、.NET Framework 2.0で新しく追加されました。

すべての列または行のサイズを変更できないようにする

通常はDataGridViewの列や行の境界線をマウスでドラッグすることにより、幅や高さを変更できます。これを禁止するには、DataGridViewのAllowUserToResizeColumnsまたはAllowUserToResizeRowsプロパティをFalseにします。

VB.NET
コードを隠すコードを選択
'DataGridView1の列の幅をユーザーが変更できないようにする
DataGridView1.AllowUserToResizeColumns = False

'DataGridView1の行の高さをユーザーが変更できないようにする
DataGridView1.AllowUserToResizeRows = False
C#
コードを隠すコードを選択
//DataGridView1の列の幅をユーザーが変更できないようにする
DataGridView1.AllowUserToResizeColumns = false;

//DataGridView1の行の高さをユーザーが変更できないようにする
DataGridView1.AllowUserToResizeRows = false;

ただしこのようにしても、DataGridViewColumn.WidthやDataGridViewRow.Heightプロパティにより列の幅や行の高さを変更することはできます。

指定した列の幅または行の高さを変更できないようにする

特定の列の幅をユーザーが変更できないようにするには、その列のDataGridViewColumn.ResizableプロパティにDataGridViewTriState.Falseを設定します。

また、特定の行の高さをユーザーが変更できないようにするには、その行のDataGridViewRow.ResizableプロパティにDataGridViewTriState.Falseを設定します。

VB.NET
コードを隠すコードを選択
'DataGridView1のはじめの列の幅をユーザーが変更できないようにする
DataGridView1.Columns(0).Resizable = DataGridViewTriState.False

'DataGridView1のはじめの行の高さをユーザーが変更できないようにする
DataGridView1.Rows(0).Resizable = DataGridViewTriState.False
C#
コードを隠すコードを選択
//DataGridView1のはじめの列の幅をユーザーが変更できないようにする
DataGridView1.Columns[0].Resizable = DataGridViewTriState.False;

//DataGridView1のはじめの行の高さをユーザーが変更できないようにする
DataGridView1.Rows[0].Resizable = DataGridViewTriState.False;

NotSetについて

ResizableプロパティをDataGridViewTriState.NotSetに設定すると、DataGridViewのAllowUserToResizeColumnsやAllowUserToResizeRowsの値がResizableプロパティに継承されます。例えば、DataGridViewのAllowUserToResizeColumnsがFalseの時にResizableをNotSetに設定すると、ResizableはFalseになります。

ResizableプロパティがDataGridViewのAllowUserToResizeColumnsやAllowUserToResizeRowsの値を継承しているか調べるには、Stateプロパティを参照します。Stateプロパティの値にResizableSetが含まれていれば、継承していません(つまり、ResizableプロパティにTrueまたはFalseが設定されています)。

列の幅、行の高さの最小値を指定する

DataGridViewColumn.MinimumWidthとDataGridViewRow.MinimumHeightプロパティにより、列の幅と行の高さの最小値を指定することができます。最小値を指定すると、ユーザーは列の幅や行の高さをそれ以下にすることができなくなります。また、列のWidthや行のHeightプロパティでもこれ以下にできなくなります(それ以下の値を設定すると、最小値と同じ値になります)。

VB.NET
コードを隠すコードを選択
'一番はじめの列の幅の最小を100ピクセルとする
DataGridView1.Columns(0).MinimumWidth = 100

'一番はじめの行の高さの最小を50ピクセルとする
DataGridView1.Rows(0).MinimumHeight = 50
C#
コードを隠すコードを選択
//一番はじめの列の幅の最小を100ピクセルとする
DataGridView1.Columns[0].MinimumWidth = 100;

//一番はじめの行の高さの最小を50ピクセルとする
DataGridView1.Rows[0].MinimumHeight = 50;

行ヘッダーの幅または列ヘッダーの高さを変更できないようにする

列ヘッダーの高さを変更できないようにするには、DataGridViewオブジェクトのColumnHeadersHeightSizeModeプロパティをDataGridViewColumnHeadersHeightSizeMode.DisableResizingに設定します。

行ヘッダーの幅はデフォルトでは変更できないようになっていますが、変更できるようにするには、DataGridViewオブジェクトのRowHeadersWidthSizeModeプロパティをDataGridViewRowHeadersWidthSizeMode.EnableResizingに設定します。

VB.NET
コードを隠すコードを選択
'列ヘッダーの高さを変更できないようにする
DataGridView1.ColumnHeadersHeightSizeMode = _
    DataGridViewColumnHeadersHeightSizeMode.DisableResizing

'行ヘッダーの幅を変更できるようにする
DataGridView1.RowHeadersWidthSizeMode = _
    DataGridViewRowHeadersWidthSizeMode.EnableResizing
C#
コードを隠すコードを選択
//列ヘッダーの高さを変更できないようにする
DataGridView1.ColumnHeadersHeightSizeMode =
    DataGridViewColumnHeadersHeightSizeMode.DisableResizing;

//行ヘッダーの幅を変更できるようにする
DataGridView1.RowHeadersWidthSizeMode =
    DataGridViewRowHeadersWidthSizeMode.EnableResizing;

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • .NET Tipsをご利用いただく際は、注意事項をお守りください。