Forums Neueste Beiträge
 

DataGridView mit spezieller Spalte

09/11/2007 - 23:42 von Karl M. | Report spam
Hallo NG!

Ich versuche bei einer DataGridView eine neue Spalte anzulegen vom Typ
DataGridViewComboBoxCell. Das anlegen klappt auch, nur wenn ich das alles
zum laufen bringe, kommt mehrmals die Fehlermeldung:

DataGridView-Ausnahme:
System.ArgumentException: Der DataGridViewComboBoxCell-Wert ist ungültig.
Behandeln Sie das DataError-Ereignis, um dieses Standarddialogfeld zu
ersetzen.

Ich habe das Ganze auch mit numerischen Werten ausprobiert, doch kommt
dieselbe Fehlermeldung. Habe auch in einem weiteren Fall die
DataGridViewComboBox mit Werten gefüllt, doch auch da kommt dieselbe
Fehlermeldung.

Folgenden Code habe ich verwendet:

dataGridView1.ReadOnly = true;
dataGridView1.AllowUserToAddRows = false;
dataGridView1.AllowUserToDeleteRows = false;
dataGridView1.Columns.Add("Spalte1", "Spalte1");
DataGridViewComboBoxCell Zelle1 = new
DataGridViewComboBoxCell();
DataGridViewColumn Spalte2 = new DataGridViewColumn(Zelle1);
Spalte2.Name = "Spalte2";
Spalte2.HeaderText = "Spalte2";
dataGridView1.Columns.Add(Spalte2);
dataGridView1.Rows.Add("Wert1", "Wert2");
dataGridView1.Rows.Add("Wert3", "Wert4");

Hat jemand eine Idee, wo der Fehler ist?

Vielen Dank im Voraus!

Mit freundlichen Grüßen
 

Lesen sie die antworten

#1 Frank Dzaebel
10/11/2007 - 08:24 | Warnen spam
Hallo Karl,

Ich versuche bei einer DataGridView eine neue Spalte anzulegen
vom Typ DataGridViewComboBoxCell. Das anlegen klappt auch, nur wenn ich
das alles zum laufen bringe, kommt mehrmals die Fehlermeldung:
DataGridView-Ausnahme:
System.ArgumentException: Der DataGridViewComboBoxCell-Wert
ist ungültig. Behandeln Sie das DataError-Ereignis, um dieses
Standarddialogfeld zu ersetzen. [...] Hat jemand eine Idee, wo der Fehler
ist?



Damit die ComboBox einen anderen
Wert (ausser null) zulàsst, solltest Du
noch deren DataSource oder die Items
setzen:

const int maxWert = 4;
//dataGridView1.ReadOnly = true;
dataGridView1.AllowUserToAddRows = false;
dataGridView1.AllowUserToDeleteRows = false;
dataGridView1.Columns.Add("Spalte1", "Spalte1");

DataGridViewComboBoxColumn spalte2 = new
DataGridViewComboBoxColumn();
spalte2.Name = "Spalte2"; spalte2.HeaderText = "Spalte2";
DataTable dt = new DataTable();
dt.Columns.Add("Anzeige"); DataRow dr = dt.NewRow();
for (int i = 1; i <= maxWert; i++)
dt.Rows.Add("Wert" + i);
spalte2.DataSource = dt;
spalte2.DisplayMember = "Anzeige";
dataGridView1.Columns.Add(spalte2);

dataGridView1.Rows.Add("Wert1", "Wert2");
dataGridView1.Rows.Add("Wert3", "Wert4");


//=// oder:

const int maxWert = 4;
//dataGridView1.ReadOnly = true;
dataGridView1.AllowUserToAddRows = false;
dataGridView1.AllowUserToDeleteRows = false;
dataGridView1.Columns.Add("Spalte1", "Spalte1");
DataGridViewComboBoxColumn spalte2 = new
DataGridViewComboBoxColumn();
spalte2.Name = "Spalte2"; spalte2.HeaderText = "Spalte2";
for (int i = 1; i <= maxWert; i++)
spalte2.Items.Add("Wert" + i);
dataGridView1.Columns.Add(spalte2);
dataGridView1.Rows.Add("Wert1", "Wert2");
dataGridView1.Rows.Add("Wert3", "Wert4");


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen