Laden...

Geänderter Wert aus DataGridViewCheckBox wird erst nach Wechsel in andere Zelle übernommen

Erstellt von zerberos vor 11 Jahren Letzter Beitrag vor 11 Jahren 909 Views
Z
zerberos Themenstarter:in
520 Beiträge seit 2007
vor 11 Jahren
Geänderter Wert aus DataGridViewCheckBox wird erst nach Wechsel in andere Zelle übernommen

Hallo,

ich habe eine DataGridView mit einer Spalte vom Typ checkbox. Das DataGridView ist an eine DataTable gebunden.

Wenn ich jetzt die checkbox anklicke übernimmt der den gänderten Wert (es müsste jetzt eine 1 in der DataTable stehen) nicht. Dies geschiht erst wenn ich eine andere zelle im DGV anklicke.

Wie kann ich das Problem lösen? Danke!

S
269 Beiträge seit 2010
vor 11 Jahren

Mir fällt aktuell nur eine Möglichkeit ein, und das wäre das Erstellen einer eigenen CheckBoxColumn wo du im EditingControl das OnCheckedChanged Event der CheckBox überschreibst und dabei den Wert direkt in die Zelle schreibst:

if(EditingControlDataGridView != null)
{
	EditingControlDataGridView.CurrentCell.Value = this.Checked;
}

(das EditingControl leitet dabei von CheckBox und IDataGridViewEditingControl ab, this.Checked bezieht sich also auf die .Checked-Property der Checkbox)

Zusatzinfo:
EditingControlDataGridView ist eine Property von IDataGridViewEditingControl

J
21 Beiträge seit 2008
vor 11 Jahren

Hallo,
eventuell reicht auch schon der Aufruf von EndEdit() des DataGridView's.

sg

S
322 Beiträge seit 2007
vor 11 Jahren

Hallo,

ich habe es bei mir so gemacht:



        private void datagridview1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
        {
            if (datagridview1.CurrentCell is DataGridViewCheckBoxCell)
                datagridview1.CommitEdit(DataGridViewDataErrorContexts.Commit);
        }

Gruß
Steffen