So entfernen Sie Zeilen im Daten-grid-Ansicht, wo die checkbox aktiviert ist?

Ich bin mit C# .NET 2.0 in Visual Studio 2005.

Bin ich der Begegnung mit seltsamen Problem.

Es ist eine einfache Fenster-form mit nur einem DataGridView mit "column1" als checkbox (DataGridViewCheckboxColumn).

Dann, wenn das Kontrollkästchen in die Zelle markiert ist, will ich zum entfernen der Zeile überprüft.

Klingt wirklich einfach, aber es entfernt nicht alle markierten Zeilen irgendwie, und ich kann nicht wirklich herauszufinden, warum verhält es sich in dieser Weise.

Zum Beispiel habe ich 5 Zeilen und aktiviert alle Kontrollkästchen in jeder Zeile, aber es entfernt nur 3 Zeilen. Hat jemand das schon mal gesehen? Ist das ein bug oder mache ich etwas falsch?

namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        //when I click the button, all checked row should be removed
        private void button1_Click(object sender, EventArgs e)
        {
            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                if ((bool)row.Cells[0].Value)
                {
                    dataGridView1.Rows.Remove(row);
                }
            }
        }
    }
}
Es ist window-forms-Anwendung, und ich sehe es nicht in meinem Projekt erkunden
sorry, masato-san, mein Fehler. 🙂
Ich denke, dass running for-Schleife in umgekehrter Richtung ist besser und schneller Ansatz, weil Sie nicht extra Liste-Objekt zum speichern von toDelete Zeilen und auch brauchen Sie nur eine Schleife zu tun, die ganze Aufgabe.
vielen Dank für die Einsicht. Auch eine andere Ursache mein raster löschen sich unerwartet war, ich war nicht zu committen. "myGrid".CommitEdit(DataGridViewDataErrorContexts.Commit);

InformationsquelleAutor masato-san | 2011-06-22

Schreibe einen Kommentar