DataGridViewCheckBoxCell wie um zu zeigen, überprüft, wenn während der form-Last

Ich habe eine DataGridView, die lädt die Daten aus einer DataTable, zusammen mit einer ungebundenen Spalte DataGridViewCheckBoxCells. Die Zeilen im DataGridView sind, verglichen mit einer separaten Datentabelle mit Werten, die der Benutzer gespeichert hat, und wenn es eine übereinstimmung gibt, wird das Kontrollkästchen für die Zeile prüfen soll.

Hier ist der code, vergleicht die Werte und setzt die checkbox Wert auf 'true':

foreach (int j in selectedObjectives)
{
    foreach (DataGridViewRow r in dgvObjectives.Rows)
    {
        if (j == Convert.ToInt32(r.Cells["ObjectiveID"].Value))
        {
            dgvObjectives.CurrentCell = r.Cells["Select"];      
            ((DataGridViewCheckBoxCell)r.Cells["Select"]).Value = true;
            //dgvObjectives.InvalidateCell(r.Cells["Select"]);
            //dgvObjectives.EndEdit();
            //dgvObjectives.CommitEdit(DataGridViewDataErrorContexts.Commit);

        }
        if (Convert.ToInt32(r.Cells["ObjectiveID"].Value) == selectedIndex)
        {
            r.Selected = true;
        }
    }
}

Wenn ich die Methode aufrufen, um diese Aktion durchzuführen, während der form-Last private void WQMDrill_Load(object sender, EventArgs e), die Werte sind richtig eingestellt, aber das Kontrollkästchen nicht aktivieren. Allerdings, wenn Sie aufgerufen, nachdem das Formular fertig geladen ist, der code funktioniert perfekt. Leider für mich, ich brauche unbedingt für diese zu prüfen, die während des Ladeprozesses.

Ich hoffe, ich war klar mit meinem Problem, jede Hilfe in dieser Angelegenheit würde sehr geschätzt werden. Wie Sie sehen können, habe ich versucht zu entkräften, die Zelle allein, sowie das gesamte DataGridView-Steuerelement. Ich habe auch

private void dgvObjectives_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
    if (this.dgvObjectives.CurrentCell.ColumnIndex == 0)
    {
        this.dgvObjectives.CommitEdit(DataGridViewDataErrorContexts.Commit);
    }
}

Nicht, dass das Feuer während dieser Zeit. Danke.

  • Der erste Schnipsel zur Verfügung gestellt - ist, dass genau der code, genannt in der form Load Veranstaltung? Haben Sie ging durch Sie zu versichern, die Werte sind immer korrekt gesetzt beim laden?
  • Die form ist Load Ereignis ruft die Methode auf, in dem dieser code befindet. Ich trat schon durch den code, und der Wert der checkbox gesetzt ist richtig, aber die Checkboxen nicht auf sich selbst geprüft. Allerdings ist auch diese Methode wird aufgerufen, wenn der Benutzer prüft die box manuell ein und es funktioniert tadellos.
InformationsquelleAutor Megan | 2011-06-30
Schreibe einen Kommentar