Entwickler-Ecke
WinForms - DataGridViewCheckBoxColumn mit Häkchen anzeigen
erfahrener Neuling - Mo 04.07.16 08:53
Titel: DataGridViewCheckBoxColumn mit Häkchen anzeigen
Guten Morgen,
ich habe ein Problem mit einer DataGridViewCheckBoxColumn. Ich kriege es nicht hin, diese mit true-Werten zu füllen, sodass die Zellen dann Checked sind.
Hier mein Code:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| DataGridViewCheckBoxColumn checkColumn = new DataGridViewCheckBoxColumn(); checkColumn.Name = "..."; checkColumn.HeaderText = "..."; checkColumn.ValueType = Type.GetType("System.bool"); checkColumn.TrueValue = true; checkColumn.FalseValue = false; this.dataGridView.Columns.Add(checkColumn);
foreach(DataGridViewRow row in this.dataGridView.Rows) row.Cells[2].Value = true; |
Weiß jemand wie's geht? Dachte eigentlich mit
TrueValue und
FalseValue müsste das gehen :nixweiss:
Danke und Gruß
Julian
EDIT: Ich wollt nur anmerken, das danach in den
Cells[2].Value auch
true drinsteht, nur das Häkchen in der CheckBox wird nicht angezeigt.
Th69 - Mo 04.07.16 09:14
In welcher Methode steht dein Code, schon im Konstruktor? Verlagere ihn (zumindestens die Schleife) mal in das Form.Load- oder Form.Shown-Ereignis (denn dann gibt es erst das Handle des DGV).
PS: Den Typen kannst du einfacher mittels typeof(bool) setzen.
erfahrener Neuling - Mo 04.07.16 09:19
Th69 hat folgendes geschrieben : |
In welcher Methode steht dein Code, schon im Konstruktor? Verlagere ihn (zumindestens die Schleife) mal in das Form.Load- oder Form.Shown-Ereignis (denn dann gibt es erst das Handle des DGV). |
Ne das hab ich in einer extra Methode (ich lade erst Daten aus einem Excel-File und aus diesen Daten wird dann u.a. das DataGridView erzeugt).
Zitat: |
PS: Den Typen kannst du einfacher mittels typeof(bool) setzen. |
Danke werd ich mir merken
Th69 - Mo 04.07.16 09:36
Vllt. habe ich mich etwas ungenau ausgedrückt - ich meinte von welcher Codestelle aus wird dein obiger Code ausgeführt (ob nun direkt oder indirekt in einer eigenen Methode spielt dabei ja keine Rolle)?
Läuft das Programm dann schon und der Anwender verwendet einen Button, welcher dann das DataGridView und dessen Column erstellt oder passiert dies schon direkt beim Programmstart?
erfahrener Neuling - Mo 04.07.16 09:49
Also das Programm läuft dann schon und wird über den 'Daten aus Excel-Datei lesen'-Button ausgelöst (nach dem die Daten geladen wurden). Was ich auch komisch fand (aber eigntl nichts damit zu tun haben müsste), dass vor der foreach-Schleife der ColumnIndex 2 war
und in der Schleife war er 0

.
Ein Ansprechen über den ColumnNamen hat auch nichts genützt.
erfahrener Neuling - Mo 04.07.16 10:10
Ok hab die Lösung gefunden.
Wenn man
C#-Quelltext
1: 2:
| checkColumn.CellTemplate.Value = true; checkColumn.CellTemplate.Style.NullValue = true; |
auf
true setzt, sind die checkBoxen von Anfang an gechecked. Die true-Werte für die einzelnen Zellen muss man aber trotzdem noch einfügen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!