2009-12-30 6 views
5

Ich habe eine DataGridView, die MultiSelect = True hat. Nachdem der Benutzer verschiedene Zellen aus verschiedenen Zeilen auswählt, wie kann ich den Wert aller ausgewählten Zellen erhalten?Wie kann ich den Wert aller ausgewählten Zellen in einem DataGridView abrufen?

+0

Ein DataGrid (in Ihrem Fragetext erwähnt) ist nicht dasselbe wie ein DataGridView (in Titel und Tags). –

+0

Wahr ... Mein Schlechter. Ich habe es gerade bearbeitet .. –

Antwort

15

Sie können über SelectedCells iterieren.

foreach (DataGridViewCell cell in dataGridView1.SelectedCells) 
{ 
    MessageBox.Show(cell.Value.ToString()); 
} 

Sie fragte nur für den Wert, aber Sie wollen wahrscheinlich auch die Zeile und die Spalte der Zelle wissen, sonst könnte der Wert bedeutungslos. Sie können diese auch auf das Zellobjekt zugreifen.

3

foreach -

DataGrid.SelectedCells 

Mehr Infos auf der selectedCells Immobilie kann bei http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.selectedcells.aspx

gefunden werden Die selectedCells Sammlung mit großer Auswahl in Datagridview ineffizient ist. Es gibt eine Methode, mit der Sie die Anzahl der ausgewählten Zellen ermitteln können. basierend darauf iterieren und es wird schneller sein.

for (int i = 0; i < grid.GetCellCount(System.Windows.Forms.DataGridViewElementStates.Selected); i++) 
{ 
    string val = grid.SelectedCells[i].Value; 
} 
+0

Kannst du ein Beispiel für das für jeden schreiben? –

+0

Codebeispiel für Sie hinzugefügt. Sehen Sie sich die GetCellCount-Methode an. Es wird wichtig sein zu wissen. –