0

問題は、チェックをオンにすると、行がビューから削除されても削除を押すと、まだ残っていることですRows.Count

Remove/RemoveAt を使用してジャンプしDataTablesた ' 'でも同じことが起こります。Delete(DataRow)

したがって、から行を削除した後、 asDataGridViewを取得してエクスポートしようとすると (この場合は csv で)、削除された行の情報を取得できないというメッセージがスローされます (言い換え - 申し訳ありませんが、デバッガーがネイティブ言語でスローします)。DataSourceDataTable

DataGridViewRowCollection、 、DataGridViewSelectedRowCollectionをいじるにはいくつかのトリッキーな方法を思いつくことができますが、DataTablesもっと確実で簡単な方法が本当に必要です。

4

2 に答える 2

0

OK、解決策は DataRowState にあります。手作業で削除されたすべての行を取り除くには、次のようにする必要があります。

DataTable t = (DataTable)dataGridView1.DataSource;

for (int i = t.Rows.Count - 1; i >= 0; i--)
{
    if (t.Rows[i].RowState == DataRowState.Deleted)
           t.Rows.RemoveAt(i);
}
于 2012-12-17T10:38:00.117 に答える