注意:DataGridViewコントロールは、.NET Framework 2.0で新しく追加されました。
指定した列がDataGridViewに存在するか(DataGridView.Columnsプロパティで得られる列コレクション内に存在するか)調べるには、DataGridViewColumnCollection.Containsメソッドを使用します。この時、存在を確認したい列の名前(DataGridViewColumn.Nameプロパティ)か、DataGridViewColumnオブジェクトを引数として渡します。
以下の例では、「Column1」という名前の列がDataGridView1に存在しているか調べています。
If DataGridView1.Columns.Contains("Column1") Then Console.WriteLine("Column1という名前の列は存在します") End If
if (DataGridView1.Columns.Contains("Column1"))
{
Console.WriteLine("Column1という名前の列は存在します");
}
DataGridViewの列に指定したDataGridViewColumnオブジェクトが存在しているかを調べるときは、Containsメソッドを使用する方法以外に、DataGridViewColumnCollection.IndexOfメソッドが0以上かを調べる方法でも可能です。
補足:DataGridViewColumnオブジェクトのIndexプロパティはDataGridViewから削除された後も0以上の整数を返すため、この目的では使用できません。
以下の例では、フォームクラスにColumn1フィールドが存在する時、Column1がDataGridView1に存在しているか調べています。
If DataGridView1.Columns.Contains(Column1) Then Console.WriteLine("Column1列は存在します") End If If DataGridView1.Columns.IndexOf(Column1) >= 0 Then Console.WriteLine("Column1列は存在します") End If
if (DataGridView1.Columns.Contains(Column1)) { Console.WriteLine("Column1列は存在します"); } if (DataGridView1.Columns.IndexOf(Column1) >= 0) { Console.WriteLine("Column1列は存在します"); }
列の数はDataGridView.Columns.Countプロパティで取得できますので、この数より小さいインデックスの列であればDataGridViewに存在しており、それ以上ならば存在していないと判断できます。
以下の例では、「removeColumnIndex」で表されるインデックスの列が存在するか調べてから、その列を削除しています。
'削除する列のインデックス Dim removeColumnIndex As Integer = 3 '削除する列がDataGridView1に存在しているか調べる If removeColumnIndex < DataGridView1.Columns.Count Then '存在していれば、削除する DataGridView1.Columns.RemoveAt(removeColumnIndex) End If
//削除する列のインデックス int removeColumnIndex = 3; //削除する列がDataGridView1に存在しているか調べる if (removeColumnIndex < DataGridView1.Columns.Count) { //存在していれば、削除する DataGridView1.Columns.RemoveAt(removeColumnIndex); }
注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。