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

指定した列がDataGridViewに存在するか調べる

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

指定した名前の列があるか調べる

指定した列がDataGridViewに存在するか(DataGridView.Columnsプロパティで得られる列コレクション内に存在するか)調べるには、DataGridViewColumnCollection.Containsメソッドを使用します。この時、存在を確認したい列の名前(DataGridViewColumn.Nameプロパティ)か、DataGridViewColumnオブジェクトを引数として渡します。

以下の例では、「Column1」という名前の列がDataGridView1に存在しているか調べています。

VB.NET
コードを隠すコードを選択
If DataGridView1.Columns.Contains("Column1") Then
    Console.WriteLine("Column1という名前の列は存在します")
End If
C#
コードを隠すコードを選択
if (DataGridView1.Columns.Contains("Column1"))
{
    Console.WriteLine("Column1という名前の列は存在します");
}

指定したDataGridViewColumnオブジェクトの列があるか調べる

DataGridViewの列に指定したDataGridViewColumnオブジェクトが存在しているかを調べるときは、Containsメソッドを使用する方法以外に、DataGridViewColumnCollection.IndexOfメソッドが0以上かを調べる方法でも可能です。

補足:DataGridViewColumnオブジェクトのIndexプロパティはDataGridViewから削除された後も0以上の整数を返すため、この目的では使用できません。

以下の例では、フォームクラスにColumn1フィールドが存在する時、Column1がDataGridView1に存在しているか調べています。

VB.NET
コードを隠すコードを選択
If DataGridView1.Columns.Contains(Column1) Then
    Console.WriteLine("Column1列は存在します")
End If

If DataGridView1.Columns.IndexOf(Column1) >= 0 Then
    Console.WriteLine("Column1列は存在します")
End If
C#
コードを隠すコードを選択
if (DataGridView1.Columns.Contains(Column1))
{
    Console.WriteLine("Column1列は存在します");
}

if (DataGridView1.Columns.IndexOf(Column1) >= 0)
{
    Console.WriteLine("Column1列は存在します");
}

指定したインデックスの列があるか調べる

列の数はDataGridView.Columns.Countプロパティで取得できますので、この数より小さいインデックスの列であればDataGridViewに存在しており、それ以上ならば存在していないと判断できます。

以下の例では、「removeColumnIndex」で表されるインデックスの列が存在するか調べてから、その列を削除しています。

VB.NET
コードを隠すコードを選択
'削除する列のインデックス
Dim removeColumnIndex As Integer = 3

'削除する列がDataGridView1に存在しているか調べる
If removeColumnIndex < DataGridView1.Columns.Count Then
    '存在していれば、削除する
    DataGridView1.Columns.RemoveAt(removeColumnIndex)
End If
C#
コードを隠すコードを選択
//削除する列のインデックス
int removeColumnIndex = 3;

//削除する列がDataGridView1に存在しているか調べる
if (removeColumnIndex < DataGridView1.Columns.Count)
{
    //存在していれば、削除する
    DataGridView1.Columns.RemoveAt(removeColumnIndex);
}

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

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