我的DataGridView
填充了我的SQL信息:
[它只能点击一个完整的行而不仅仅是一个单元格,如我的图片所示]
我尝试了一些来自Reading data from DataGridView in C#的代码示例,但它适用于我的问题。
我试试这个,因为它似乎很好
dataGridView.Rows[MyIndex].Cells["MessageHeadline"].Value.ToString();
但是我得到了一个错误。
现在我想拿索引(加1,因为它从0开始)如果我按一行,我的程序应该从我的DataGridView
获取信息并将其还给。
答案 0 :(得分:2)
尝试使用CurrentRow
代替SelectedRow
。只有从RowHeader
选择了行或RowSelection
属性设置为FullRowSelect
时,才会执行所选行。但是,CurrentRow实际上是专注于行。即使您只选择了一个单元格,也可以获得价值。
dataGridView.CurrentRow.Cells["MessageHeadline"].Value.ToString()
答案 1 :(得分:1)
试试这个:
将datagridview的SelectionMode
属性设置为CellSelect
。现在,您将能够自行选择一个单元格。
在CellMouseClick
事件中:
private void MyGridView_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
string FullContent = "";
for (int i = 0; i < MyGridView.Columns.Count; i++)
{
FullContent += MyGridView.Rows[e.RowIndex].Cells[i].Value.ToString() + "^";
}
FullContent = FullContent.Substring(0, Content.Length - 1);
string[] Content=FullContent.Split('^')
}
现在,您可以从Content数组中获取每个列内容。 像:
Content[0],Content[1],Content[2],etc.
例如,如果单击datagridview中的第一行。 您可以访问以下内容:
FullContent; //1^Test BGW 1^Test^All^12.05.2014^.....
分割内容:
Content[0]; //1
Content[1]; //Test BGW 1
Content[2]; //Test
Content[3]; //All
Content[4]; //12.05.2014
答案 2 :(得分:0)
仅使用foreach循环即可解决问题。
foreach (DataGridViewRow row in gridStore.Rows)
{
MessageBox.Show(row.Cells[2].Value.ToString()); //row.Cell[index Here!]
}