You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中如何将DataGrid行值显示到文本框?偶现失效求助

排查DataGrid行值显示到文本框时灵时不灵的问题

我来帮你拆解下这个问题,你的代码里有几个关键的点可能导致功能不稳定,咱们一个个来解决:

1. 事件触发范围太窄是核心原因

你用的是CellContentClick事件,这个事件只有点击单元格里的内容(比如文字、内嵌控件)才会触发,如果点击单元格的空白区域(比如边框、没有文字的地方),事件根本不会执行,这就会让你觉得“有时失效”——其实只是点击位置不对而已。

解决办法:把事件换成CellClick,这个事件只要点击单元格的任何区域都会触发,覆盖范围更全。

2. 空值未处理会导致代码中断

如果DataGrid里的某个单元格值是null,你直接调用.ToString()会抛出空引用异常,后续的文本框赋值代码就会中断,看起来就是“失效”了。

解决办法:取值的时候加上空值判断,用?.ToString() ?? ""来兜底,避免异常。

3. 数据操作和UI同步容易出问题

你在事件里直接移除DataTable的行再插入到顶部,然后手动选中第一行,这个过程中如果DataGrid和DataTable的绑定没有及时同步,可能会出现行索引混乱的情况,导致取错值。

优化建议:如果你的需求是把选中行移到顶部,可以通过BindingSource来操作(如果用了绑定源的话),或者操作后强制刷新DataGrid的UI,确保索引正确。


修改后的完整代码示例

// 注意:要把事件绑定换成CellClick,而不是CellContentClick
private void CRUD_CellClick(object sender, DataGridViewCellEventArgs e)
{
    // 先判断是否点击的是有效行(排除表头行)
    if (e.RowIndex < 0) return;

    // 处理空值,避免空引用异常
    txtBoxID.Text = CRUD.Rows[e.RowIndex].Cells[0].Value?.ToString() ?? "";
    txtBoxStates.Text = CRUD.Rows[e.RowIndex].Cells[1].Value?.ToString() ?? "";
    txtBoxName.Text = CRUD.Rows[e.RowIndex].Cells[2].Value?.ToString() ?? "";
    txtBoxAddress.Text = CRUD.Rows[e.RowIndex].Cells[3].Value?.ToString() ?? "";
    txtBoxCenter.Text = CRUD.Rows[e.RowIndex].Cells[4].Value?.ToString() ?? "";
    txtBoxCity.Text = CRUD.Rows[e.RowIndex].Cells[5].Value?.ToString() ?? "";

    // 优化数据行移动逻辑,确保索引正确
    DataRow Row = tblCRUD.Rows[e.RowIndex];
    DataRow newRow = tblCRUD.NewRow();
    newRow.ItemArray = Row.ItemArray;
    tblCRUD.Rows.Remove(Row);
    tblCRUD.Rows.InsertAt(newRow, 0);

    // 刷新DataGrid的UI,确保数据同步
    CRUD.Refresh();

    // 重新选中第一行
    foreach (DataGridViewRow item in CRUD.Rows)
    {
        item.Selected = false;
    }
    if (CRUD.Rows.Count > 0)
    {
        CRUD.Rows[0].Selected = true;
    }
}

额外测试建议

  • 测试时点击单元格的不同区域(空白处、文字处),看看是否都能触发赋值
  • 检查DataGrid里的单元格是否存在null值,验证空值处理是否生效
  • 如果用了BindingSource绑定DataTable,建议直接操作BindingSource的行,而不是直接操作DataTable,这样UI同步会更可靠

内容的提问来源于stack exchange,提问作者Hariom Kumar Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 03:50:25