| 

.NET C# Java Javascript Exception

5
DataGridViewColumnCollection.Insert(Index, DataGridViewColumn).
Diese Funktion ignoriert den Index und fügt die DataGridViewColumn immer an Index[0] ein. Ist das so oder was mache ich falsch?
24.01.2012
Hast 75 1 5
DerPunk 1,2k 1 7
Eigentlich nicht:
DataGridViewColumnCollection.Insert Method: Inserts a column at the given index in the collection.
Es wäre hilfreich, ein bischen Code zu sehen.
maximilian_becker 24.01.2012
*Tags hinzugefügt*
DerPunk 24.01.2012
3 Antworten
0
Danke für die Nachfrage.
Hier etwas Code:

...
DataGridViewCheckBoxColumn[] m_arDoors = new DataGridViewCheckBoxColumn[n];
...
... Füllen des Arrays
...
... Element in m_arDoors suchen
int d = Index in m_arDoors
...
// Column in DataGridView austauschen:
for(int i = 0; i < base._dgv.Columns.Count; i++)
{
if(base._dgv.Columns[i].DataPropertyName == m_arDoors[d].DataPropertyName)
{ base._dgv.Columns.RemoveAt(i);
base._dgv.Columns.Insert(i, m_arDoors[d]);
break;
}
}

... Die Spalte m_arDoors[d] befindet sich danach an 1.Position im DataGridView und nicht an Position i.
24.01.2012
Hast 75 1 5
0
Ohne das tatsächliche System genau zu kennen, habe ich versucht den Code nachzustellen.
Das sieht bei mir wie unten angefügt aus und funktioniert.

Bitte prüfen Sie in Ihrem Code, ob i != 0 ist bei base._dgv.Columns.Insert(i, m_arDoors[d]);.

Liebe Grüße!

private void button1_Click(object sender, EventArgs e)
{
dataGridView1.Columns[0].DataPropertyName = "guenther";
dataGridView1.Columns[1].DataPropertyName = "fred";
dataGridView1.Columns[2].DataPropertyName = "esther"; // the tester


int d = 0; //Index in m_arDoors

List<DataGridViewColumn> m_lsDoors = new List<DataGridViewColumn>();
DataGridViewCheckBoxColumn dgc = new DataGridViewCheckBoxColumn();

//Einen Treffer erzeugen:
dgc.DataPropertyName = dataGridView1.Columns[2].DataPropertyName;

m_lsDoors.Add(dgc);

// Column in DataGridView austauschen:
for(int i = 0; i < dataGridView1.Columns.Count; i++)
{
if(dataGridView1.Columns[i].DataPropertyName == m_lsDoors[d].DataPropertyName)
{
dataGridView1.Columns.RemoveAt(i);
dataGridView1.Columns.Insert(i, m_lsDoors[d]);
break;
}
}
}
29.01.2012
0
Danke.
Die Lösung liegt im manuellen Aufbau des DataGridView.
Ist das DataGridView mit dem Designer im Formular erstellt, treten die beschriebenen Probleme auf.
Beste Grüße
31.01.2012
Hast 75 1 5

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH