Reputation: 1277
Title is pretty self-explanatory. I've got a DataGrid for a Windows Form Application, and I want to be able to store the values of a selected row. What is the easiest way to go about doing this?
I have found this chunk of code as an example in my search, but doesn't work when the DataGrid is sorted differently:
private void grdPatients_CurrentCellChanged(object sender, EventArgs e)
{
int row = grdPatients.CurrentRowIndex;
grdPatients.Select(row);
ArrayList arrayList = new ArrayList();
for (int i = 0; i < 3; i++)
{
arrayList.Insert(i, (patientsDS.Tables["PatientList"].Rows[row].ItemArray.GetValue(i)));
}
textBox1.Text = "" + arrayList[0];
textBox2.Text = "" + arrayList[1];
textBox3.Text = "" + arrayList[2];
}
Upvotes: 19
Views: 120817
Reputation: 1
var data = DataGridView.SelectedRows;
foreach (DataGridViewRow item in data)
{
var DataRows = item.DataBoundItem as Usuarios;
}
Upvotes: 0
Reputation: 61
For multiple choise use:
foreach (DataGridViewRow row in dataGridView1.SelectedRows)
{
// your code
}
Upvotes: 0
Reputation: 139
You could just use
DataGridView1.CurrentRow.Cells["ColumnName"].Value
Upvotes: 6
Reputation: 60438
Assuming i understand your question.
You can get the selected row using the DataGridView.SelectedRows
Collection. If your DataGridView allows only one selected, have a look at my sample.
DataGridView.SelectedRows Gets the collection of rows selected by the user.
if (dataGridView1.SelectedRows.Count != 0)
{
DataGridViewRow row = this.dataGridView1.SelectedRows[0];
row.Cells["ColumnName"].Value
}
Upvotes: 40