从 DataGridView 中的选定行获取 ID 以在文本框中打印

Get ID from selected row in DataGridView to print in Textbox

提问人:Salem Gogah 提问时间:11/14/2023 最后编辑:LarsTechSalem Gogah 更新时间:11/15/2023 访问量:81

问:

我只是想在 DataGridView 的选定行中反映 Id 号

我试过这个

tb_id.Text = dgv_search.SelectedCells[0].Value.ToString();

tb_id 是我的文本框,dgv_search是 DataGridView

即使我选择另一行,我也得到了第一行的结果

C# WinForms DataGridView

评论

0赞 LarsTech 11/14/2023
你没有向我们展示你在哪里调用该代码。
0赞 Salem Gogah 11/15/2023
单击按钮后
0赞 LarsTech 11/15/2023
按钮事件是否正确订阅?单击按钮时是否使用调试器对其进行了测试。否则,发布的代码将起作用。
0赞 Salem Gogah 11/15/2023
是的,它工作正常,但它显示第一行 ID,这不是我想要的(我想显示选定的行 ID) 我尝试选择另一行,但文本框值没有改变
0赞 LarsTech 11/15/2023
就像我说的,发布的代码有效。你正在做一些我们看不见的事情。发布为我们重现问题的代码。

答:

0赞 IVSoftware 11/15/2023 #1

你的文字说你希望在所选行中使用 Id,但你的代码说要使用集合中的第一个值。尝试改用集合,使代码与意图匹配。SelectedCellsSelectedRows

dgv_search.SelectionChanged += (sender, e) =>
{
    if(dgv_search.SelectedRows.Count > 0)
    {
        var rowIndex = dgv_search.SelectedRows[0].Index;
        var columnIndex = dgv_search.Columns["Id"].Index;
        tb_id.Text = dgv_search[columnIndex, rowIndex].Value?.ToString() ?? string.Empty;
    }
};