c# fügen Sie eine dgv-Zeile mit einem dataGridViewComboBoxCell
Ich bin versucht derzeit, fügen Sie ein Kombinationsfeld-Steuerelement an ein dataGridView.
In der DGV, es gibt 5 Spalten: checkbox, string, string, combobox, combobox.
beiden combobox-Spalten konfiguriert sind, wie datagridviewcomboboxcolumns (über VisualStudio-designer). Mein problem ist das hinzufügen von Zeilen.
Meinen aktuellen versuchen ist: die Säulen sind bereits definiert und ich Zeilen hinzufügen über dataGridView.Zeilen.Hinzufügen.
Dafür verwende ich ein array von Objekten. Beispiel:
dataGridViewRow row = new dataGridViewRow();
object[] obj = new object[5] {true, "str1", "str2", null, null};
dataGridView1.Rows.Add(obj);
Diese Pässe ohne Fehler. Aber logisch, die comboBoxes nicht gefüllt mit nichts.
Ich habe versucht, eine Datenquelle in der 4. und 5. Zelle einer Zeile:
Fehler...ZEILE.dataGridViewComboBoxCell.Elemente.Hinzufügen: Objekte werden nicht angezeigt...
Füllung obj[3] und 4 mit einem neuen DGVcomboBoxCell oder -Spalte:
Error... :The error message says "The dataGridViewComboBoxCell-Value is invalid.
Weitere Informationen: Jede Spalte sollte haben die gleichen Elemente in den comboBoxes. (Diese sind zuvor über das internet, als xml). Einstellung eine dataSource um die zwei Spalten, die zerstört die ganze DGV (ich denke, weil die anderen colmns nicht über eine Datasource).
Kurz gesagt: gewusst Wie: hinzufügen von Zeilen zu einer DGV enthalten, die comboboxes gefüllt mit Artikeln?
Mit freundlichen GRÜßEN,
NoMad
edit: hier etwas code um mein problem zu lösen:
DataGridViewCheckBoxColumn check = new DataGridViewCheckBoxColumn();
check.Name = "Col1";
dataGridView1.Columns.Add(check);
dataGridView1.ColumnCount = 3;
dataGridView1.Columns[1].Name = "Col2";
dataGridView1.Columns[2].Name = "Col3";
object[] row = new object[] { true, "str1", "str2" };
dataGridView1.Rows.Add(row);
DataGridViewComboBoxColumn combo1 = new DataGridViewComboBoxColumn();
DataGridViewComboBoxColumn combo2 = new DataGridViewComboBoxColumn();
combo1.Name = "Col4";
combo1.Items.Add("100x100");
combo1.Items.Add("200x200");
combo2.Name = "Col5";
combo2.Items.Add("option1");
combo2.Items.Add("option2");
dataGridView1.Columns.Add(combo1);
dataGridView1.Columns.Add(combo2);
Zuerst fügen Sie eine Zeile hinzu, cast Spalten, konfigurieren Sie Sie und fügen Sie die Zeile.
Keine Spalten müssen zuvor angegeben, in der designer.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie über diese Lösung für das hinzufügen von Elementen zu datagird view combobox-Spalte
wenn die oben nicht funktioniert, nehmen Sie einen Blick auf die Lösung unten..
können Sie es über DataGridViewComboBoxCell. Nach der Zelle rowIndex, verschiedene datasource(string[]) zu den verschiedenen DataGridViewComboBoxCell. Codierung wie diese:
Ich bin mir nicht ganz klar, was Sie hier versuchen, aber wenn Sie nur versuchen, wählen Sie einen Wert aus der combobox für jede Zeile, die Sie hinzufügen, können Sie eine vorhandene combobox den Wert als string.
Wenn ich ein zwei datagridview-Spalte, die beide mit comboboxes, die pre-besiedelten (ich aufgefüllt, meine comboboxes in das datagridview-Steuerelement selbst, indem Sie einfach die Bearbeitung jeder Spalte und hinzufügen meine Auswahl, um die Sammlung dort), dann kann ich dies tun:
Also "Foo" und "Bar" sind bereits Optionen in den comboboxes. Ich kann füllen Sie jede Zeile, indem Sie einfach unter Bezugnahme auf die Wahl will ich mit Namen. Ich denke, ich könnte auch die index-Nummer, wenn ich wollte.
Hoffe, das hilft!
Wenn Sie brauchen, um konfiguriert Spalten probieren Sie etwas wie dieses:
Werte 1 und 2, wo es sich nur um Beispiele. Es muss die Art Ihres DataGridViewComboBoxColumn.ValueMember. Ich war auf der Suche nach diesem Thema, so
Ich dachte, jemand könnte es verwenden.