我有一个连接到 mssql 数据库的 datagridview,我想在按 exec_cmd_btn 时从所选行中获取第一个单元格 到目前为止我已经尝试过:
private void exec_cmd_btn_Click(object sender, EventArgs e)
{
string cell = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
}
这给我带来了以下错误:
Index was out of range. Must be non-negative and less than the size of the collection.\r\nParameter name: index
当我按下数据 GridView 时,我需要创建一个事件吗?
最佳答案
我猜您可能会遇到 SelectedRows
属性的问题,因为这取决于 DataGridView
的 SelectionMode
的情况放。如果 DataGridViews
SelectionMode
未设置为 FullRowSelect
,则此实现将不起作用。由于您试图从第一列获取单元格,那么我认为这不会成为问题,因为您想确保也选择了第一列。另一个问题是,如果 DataGridView
MultiSelect
属性设置为 true,那么使用 SelectedRows[0]
的代码将返回最后选定的行,而不是首先。如果您想要第一个选定的行,则可以使用下面的代码。它将显示所选的第一行和最后一行。希望这会有所帮助。
// The DataGridView SelectionMode must be set 'FullRowSelect' for this to work!
private void button1_Click(object sender, EventArgs e) {
if (dataGridView1.SelectedRows.Count > 0) {
int firstRowIndex = dataGridView1.SelectedRows.Count - 1;
string cell = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
string cell2 = dataGridView1.SelectedRows[firstRowIndex].Cells[0].Value.ToString();
MessageBox.Show("Last selected row at cell[0] value: " + cell + " First Selected row at cell[0] value: " + cell2);
}
}
关于c# - 从 C# 中的 DataGridView 获取选定行的第一个单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42734357/