2016-11-04 16 views
-1

私は、datagridviewの行を削除しようとしていますが、そのレコードの対象となるレコードのボトムアップから選択したものだけを削除します。すべてのレコードを削除する必要があります。助けてください!ここに私のコードはあります:DataGridviewの行を削除する

For n As Int32 = DataGridView1.Rows.Count - 1 To 0 Step -1 
     Dim c As Boolean 
     c = DataGridView1.Rows(n).Cells(0).Value 
     If c = True Then 
      DataGridView1.Rows.RemoveAt(n) 
     Else 
     End If 
    Next n 

注:このコードは短いリストでも動作しますが、大きなリストでは選択したレコードの一部のみが削除されます。選択したものは「c = True」のレコードを意味します

+1

後ろ向き反復... RemoveAtを実行すると何が起こるか考えてください。すべてが上に移動して一部がスキップされます。また、DataTableにバインドされている場合、DGV行を削除してもデータに何も反映されません。 – Plutonix

+0

@Plutonixは私がすでにやっていることではない???もしそうなら、なぜそれは機能していないのですか? – Chrisetiquette

+0

@LarsTech私もそうだと思った – Chrisetiquette

答えて

-1

私は行をスキップして削除しないように、上から下に向かって繰り返します。

For each row as DataRow in DataGridView1.Rows 
    Dim c As Boolean 
    c = isNumeric(row(0) 
    If c = True Then 
     DataGridView1.Rows.Remove(row) 
    Else 
    End If 
Next 

このコードは、あなたが望むものに適しています。

+1

同時にデータウインドウを繰り返したり削除したりするとエラーが発生することにご注意ください。 –

+0

いいえ私はこれをする必要はなかったが、これがうまくいくと思った。 –

+3

申し訳ありませんが動作しません。 –

関連する問題