Benutzer mit den meisten Antworten
Datagridview CheckBox-Darstellung

Frage
-
Hallo Experten
mit folgenden Code versuche ich DB-Abfrage (Access) in einem Datagrid abzubilden, das klappt auch ganz gut, wenn man von Spalte "CheckPik" absieht. Diese Spalte hätte ich gerne als Checkbox.
PIKdataAdapter = New OleDb.OleDbDataAdapter("Select cbool(0) as CheckPik, * from ...", My.Settings.DefaultConnectionString) PIKdataAdapter.Fill(PIKTable) Me.PIKBindingSource.DataSource = PIKTable DataGridView1.DataSource = PIKBindingSource DataGridView1.Columns.Item("CheckPik").Visible = True DataGridView1.Columns.Item("CheckPik").HeaderText = "" DataGridView1.Columns.Item("CheckPik").Width = 40 'Die folgende Zeil wird mit Fehler ausgeführt 'DataGridView1.Columns.Item("CheckPik").CellTemplate = New DataGridViewCheckBoxCell()
Für Idee wäre ich dankbar ... mfg eem monarch
Antworten
-
Hallo,
einfach der Datagridview.columns Auflistung eine DatagridViewCheckboxColumn hinzufügen.
Schaue mal hier:
http://csharp.net-informations.com/datagridview/csharp-datagridview-checkbox.htm
oder hier: http://www.gssg.de/net_dgriddmo.htmGrüße Alexander
- Als Antwort markiert Monarch-Falter Donnerstag, 20. Dezember 2012 11:53
Alle Antworten
-
Hallo,
einfach der Datagridview.columns Auflistung eine DatagridViewCheckboxColumn hinzufügen.
Schaue mal hier:
http://csharp.net-informations.com/datagridview/csharp-datagridview-checkbox.htm
oder hier: http://www.gssg.de/net_dgriddmo.htmGrüße Alexander
- Als Antwort markiert Monarch-Falter Donnerstag, 20. Dezember 2012 11:53
-
Servus Alexander,
wie man eine UNGEBUNDENE Spalte zur Laufzeit hinzufügt, ist mir klar ...
If PikCheck = True Then Dim column As New DataGridViewCheckBoxColumn() With column .HeaderText = "" .Name = "CheckPik" .AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells .FlatStyle = FlatStyle.Standard .CellTemplate = New DataGridViewCheckBoxCell() .CellTemplate.Style.BackColor = Color.Beige End With DataGridView1.Columns.Insert(0, column) End If
Das ist aber nicht mein Problem, sonder das es sich um gebunde Spalten handelt. Der SQL-Strting laute "Select cbool(0) as PikCheck ....". Das Datagrid zeigt die Spalte "PikCheck" an, aber eben nicht als Checkbutton. A) Warum zeigt sie eine Booleanspalte nicht als Checkbox an? B) Wie kann ich das DGV dazu bringen es zu tun?
mfg eem monarch
-
Wenn die Spalte “bool” ist, dann wird automatisch auch eine CheckBoxColumn erzeugt. Deine Spalte ist vermutlich in der gebundenen Datenquelle nicht vom Typ “bool”. Erzeuge eine booleasche Eigenschaft für die Bindung, die den aus der Datenbank gelesenen Typ mappt.--
Viele Gruesse
Peter -
Servus Peter,
ähm ich denke, dass das SQLStatement "Select CBool(0) as PikCheck, ..." doch dem Typ "Bool" entspricht, oder? In der Table gibt es kein Feld "PikCheck". Diese Spalte wird durch das SQLStatement erzeugt..
Und was meinst du mit:
Erzeuge eine booleasche Eigenschaft für die Bindung, die den aus der Datenbank gelesenen Typ mappt.
mfg eem monarch
-
Die einfachste Sache ist, eine Klasse mit den gewünschten Eigenschaften zu erstellen und für jeden gelesenen Datensatz ein Objekt vom Typ dieser Klasse zu erstellen. Diese Objekt sind dann einer Liste hinzuzufügen und die Liste ist im Grid der DataSource-Eigenschaft zuzuweisen. Dann klappt das auch mit der Anzeige einer CheckBox-Spalte.In Anhängigkeit der weiteren geforderten Bedingungen sind natürlich auch viele andere Lösungswege möglich.--
Viele Gruesse
Peter