2015-09-09 3 views
1

как сделать правильный синтаксис этого цикла foreach. Я хочу получить каждое значение ячейки из выбранной строки. я уже установлен режим выбора FullRowSelectC# DataGridView get Cells Value from Selected Row

private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e) 
{ 
     foreach (//datagrid cell in current_selected_row) <--- proper Syntax condition 
     { 
      if(cell != null) 
      { 
       MessageBox.Show(cell.Value.ToString()); 
      } 
     } 
} 

ответ

2

Вы можете найти текущую строку так:

var row = this.dataGridView1.CurrentRow; 

Затем, имеющий текущую строку, вы можете найти значение ячеек в одном из этих способов

row.Cells.Cast<DataGridViewCell>() 
    .ToList() 
    .ForEach(cell => 
    { 
     MessageBox.Show(string.Format("{0}", cell.Value)); 
    }); 

Это эквивалентно:

foreach (DataGridViewCell cell in row.Cells) 
{ 
    MessageBox.Show(string.Format("{0}", cell.Value)); 
} 

Или этот путь

for (int i = 0; i < row.Cells.Count; i++) 
{ 
    MessageBox.Show(string.Format("{0}", row.Cells[i].Value)); 
} 
+0

WOw спасибо. Я использую foreach, но что означает линия '' cell => ''. –

+0

Большое вам спасибо, сэр. –

+0

, но когда я пытаюсь отфильтровать его, если cell.value.ToString()! = Null. он выдает исключение System.NullReferenceException. Дополнительная информация: Ссылка на объект не установлена ​​в экземпляр объекта. –