2010-08-23 74 views
6

我有一个表格,我在数据网格视图控件中显示。用户从控件中选择一行并按下一个按钮。我需要从该行检索单元格并将它们存储为字符串。如何使用SelectedRows从数据网格视图中获取选定的行数据?

究竟如何使用SelectedRow方法获取数据?我已经为此工作了好几个小时,而且我已经完成了我的绳索。以下是我尝试过的一些示例:

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

如果我尝试访问selRowData [x],返回值不包含我的数据。

+0

回答[这里]通过所有小区建立一个文本串。 [1]:http://stackoverflow.com/a/10525686 – ZMan 2013-01-21 20:43:55

回答

7

你接近 - 你需要通过它的索引引用每个Cell并返回其Value属性:

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

1

尝试使用DGV的项目元素。

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

这将返回第一项的值。你可以把它放在一个for循环中以获得全部。

另一种选择是使用对象上的SelectedRows集合并遍历每个选定的行(或者只是您的案例中的一个)。

1

那么有没有datagridview的项目属性.. @周杰伦里格斯的解决方案是更好的... ...以下解决方案也适用:

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

这里0是第一列和dataGridView1.CurrentRow.Index是当前行从哪里获得价值。

1

如果你想要的数据和数据很可能绑定到数据源,那么可能我建议你从选择键,然后你可以用它来访问数据,你喜欢的任何方式:

dataGridView.SelectedDataKey.Value; 
0

也许这是更合适的解决方案中使用点击的行的单元格的值:[1]进行迭代

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