2010-08-23 5 views
6

Ich habe eine Tabelle, die ich in einem Datenraster anzeigen Steuerelement anzeigen. Der Benutzer wählt eine einzelne Zeile aus dem Steuerelement und drückt eine Taste. Ich muss die Zellen aus dieser Zeile abrufen und sie als Zeichenfolgen speichern.Wie erhalte ich die ausgewählten Zeilendaten aus einer Datenrasteransicht mit SelectedRows?

Genau wie bekomme ich die Daten mit der SelectedRow-Methode? Ich arbeite seit mehreren Stunden daran und bin am Ende meiner Arbeit. Hier ist ein Beispiel für etwas, was ich versucht habe:

DataGridViewCellCollection selRowData = dataGridView1.SelectedRows[0].Cells; 

Wenn ich versuche, den Zugriff auf selRowData [x], der Rückgabewert nicht meine Daten enthält.

+0

Antwort [hier] [1] durchläuft alle Zellen eine Textzeichenfolge zu bauen. [1]: http://stackoverflow.com/a/10525686 – ZMan

Antwort

7

Sie sind in der Nähe - Sie jeden Cell durch seinen Index verweisen müssen und das Rück seine Value Eigenschaft:

string firstCellValue = dataGridView1.SelectedRows[0].Cells[0].Value; 
string secondCellValue = dataGridView1.SelectedRows[0].Cells[1].Value; 

usw.

1

Versuchen Sie das Element Element des dgv verwenden.

dgvFoo.Item(0, dgvFoo.CurrentRow.Index).Value 

Das würde den Wert des ersten Elements zurückgeben. Du könntest das in eine for-Schleife legen, um sie alle zu bekommen.

Eine andere Option wäre, die SelectedRows-Auflistung für das Objekt zu verwenden und durch jede ausgewählte Zeile (oder nur die in Ihrem Fall) zu durchlaufen.

1

Nun gibt es keine Datagridview Item-Eigenschaft .. @ Jay Riggs Lösung besser ist ... Nach der Lösung funktioniert auch:

string firstCellValue = dataGridView1[0,dataGridView1.CurrentRow.Index].Value.ToString(); 
string secondCellValue = dataGridView1[0,dataGridView1.CurrentRow.Index].Value.ToString(); 

Hier 0 ist die erste Spalte und dataGridView1.CurrentRow.Index ist die aktuelle Zeile von wo man Wert bekommt.

1

Wenn Sie die Daten und die Daten wollen, ist wahrscheinlich auf eine Datenquelle gebunden ist, dann könnte ich vorschlagen, dass Sie den Schlüssel aus der Auswahl zu bekommen, und dann können Sie, dass die Daten beliebig Sie zugreifen verwenden möchten:

dataGridView.SelectedDataKey.Value; 
0

Vielleicht ist dies eine geeignetere Lösung die Zellenwerte der Zeile verwenden geklickt:

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) 
{ 
    if (e.RowIndex > -1) 
    { 
    var val = this.dataGridView1[e.ColumnIndex, e.RowIndex].Value.ToString(); 
    } 
} 
Verwandte Themen