Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

Geänderter Wert aus DataGridViewCheckBox wird erst nach Wechsel in andere Zelle übernommen
zerberos
myCSharp.de - Member



Dabei seit:
Beiträge: 520

Themenstarter:

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

beantworten | zitieren | melden

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!
private Nachricht | Beiträge des Benutzers
Somakia
myCSharp.de - Member



Dabei seit:
Beiträge: 269
Herkunft: Hessen

beantworten | zitieren | melden

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
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Somakia am .
private Nachricht | Beiträge des Benutzers
Jonny132
myCSharp.de - Member



Dabei seit:
Beiträge: 21

beantworten | zitieren | melden

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

sg
private Nachricht | Beiträge des Benutzers
steffen_dec
myCSharp.de - Member



Dabei seit:
Beiträge: 322

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers