Hallo zusammen.
Ich versuche derzeit vergeblich, in einer Tabelle zu erzeugen, in der eine Spalte eine Combobox mit unterschiedlichen Werten je Spalte sein soll.
Vereinfachtes Beispiel:
CSV Datei
Dateiname;Unterlage;Blatt;Planbreite;Planhöhe;Maßstab;Schichten A2_Übersichtskarte.plt;2;;42;29,7;1:25000;0011_Asphalttragschicht,0015_Kies/Schotterschicht(14),0002_Gelände im Planungsber.(24) A3_B1_Lageplan.plt;3;1;116;70;1:250;0002_Gelände im Planungsber.(12),0026_Natursteinbruch(16),0023_Stein(4) A3_B2_Lageplan VE.plt;3;2;116;70;1:250;0054_Brücke(7),0024_Betonsockel für Stein(11),Gradiente_GRAD_1_Gradientenlinie_1+ A4_B1_HP_Achse-100.plt;4;1;59;40;1:250;0001_Gelände(1),Kataster,Stempel A4_B2_HP_Achse-101.plt;4;2;78;59,4;1:250;0003_Deckenbuch(5),0214_Baugrube(5),0013_Schottertragschicht(4) A4_B3_HP_Achse-102.plt;4;3;59;40;1:250;Bezugshöhe(16),PLANAUSSTATTUNG,0005_Oberboden - Auftrag(13)
Powershell Script:
Add-Type -AssemblyName System.Windows.Forms $Fenster=New-Object System.Windows.Forms.Form -Property @{WindowState='Maximized';Padding='30,30,30,30'} $Tabelle=New-Object System.Windows.Forms.Datagridview -Property @{Dock='Fill';EditMode='EditOnEnter';RowHeadersVisible=$False;AllowUserToResizeRows=$False} [System.Collections.Arraylist]$CSV=Import-Csv -Delimiter ';' -Encoding Default test.csv | % {$_.Schichten=$_.Schichten.Split(',');$_} $Fenster.Controls.Add($Tabelle) $Tabelle.DataSource=$CSV $Fenster.ShowDialog()
Statt der TextboxSpalte 'Schichten' soll hier eine Comboxspalte mit den entsprechenden Werten.
Ich habe auch bereits versucht, die ComboBoxSpalte nachträglich zur Tabelle hinzuzufügen füllen zu lassen:
Add-Type -AssemblyName System.Windows.Forms $Fenster=New-Object System.Windows.Forms.Form -Property @{WindowState='Maximized';Padding='30,30,30,30'} $Tabelle=New-Object System.Windows.Forms.Datagridview -Property @{Dock='Fill';EditMode='EditOnEnter';RowHeadersVisible=$False;AllowUserToResizeRows=$False} [System.Collections.Arraylist]$CSV=Import-Csv -Delimiter ';' -Encoding Default test.csv | % {$_.Schichten=$_.Schichten.Split(',');$_} $Fenster.Controls.Add($Tabelle) $Tabelle.DataSource=$CSV $Tabelle.Columns[6].Visible=$False $ComboColumn=New-Object System.Windows.Forms.DatagridviewComboBoxColumn -property @{Headertext='Schichten';width=200} $Index=$Tabelle.Columns.Add($ComboColumn) $Tabelle.Rows | % {$i=0} { $_.Cells[$Index]=New-Object System.Windows.Forms.DatagridviewComboBoxCell -property @{items=$CSV[$i].Schichten} $i++ } $Fenster.ShowDialog()
Zwar wird so die Comboboxspalte erstellt, jedoch sind die angezeigten Comboboxen leer, obwohl die Items richtig zugewiesen wurden, wenn man den Zellinhalt abruft.
Darüber hinaus wird der Spaltentyp beim schließen des Fensters automatisch in "DataGridViewTexboxColumn" geändert.
Hat jemand einen Lösungsvorschlag?
Gruß Thomas