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

C# WinForm中DataGridView点击行自动填充输入框失效问题排查

WinForm DataGridView点击行填充输入框问题解决步骤

1. 确保代码绑定到正确的事件

你的填充代码必须放在DataGridView的CellClick或SelectionChanged事件处理方法中,否则点击行时不会触发代码执行:

  • 打开窗体设计器,选中usersgv控件
  • 在属性窗口切换到「事件」标签(闪电图标)
  • 找到CellClick或SelectionChanged事件,双击进入代码编辑界面,把填充代码粘贴进去

2. 设置正确的行选择模式

如果DataGridView的选择模式不是整行选择,SelectedRows集合可能为空:

  • 选中usersgv,在属性窗口找到SelectionMode
  • 将其设置为FullRowSelect,确保点击行任意位置都会选中整行

3. 添加空值判断,避免异常与无响应

直接访问SelectedRows[0]或单元格值可能因为未选中行、单元格值为DBNull导致报错或无效果,修改代码如下:

if (usersgv.SelectedRows.Count > 0)
{
    var selectedRow = usersgv.SelectedRows[0];
    // 使用空合并运算符处理null/DBNull情况
    unameTb.Text = selectedRow.Cells[0].Value?.ToString() ?? string.Empty;
    uphoneTb.Text = selectedRow.Cells[1].Value?.ToString() ?? string.Empty;
    upassTb.Text = selectedRow.Cells[2].Value?.ToString() ?? string.Empty;
}

4. 验证列索引与数据源匹配

确认Cells[0]、Cells[1]、Cells[2]分别对应用户名、手机号、密码列:

  • 如果是绑定DataTable等数据源,检查数据源的列顺序是否和你预期一致
  • 如果是手动添加行,确认添加时的列顺序和填充代码的索引对应

5. 检查事件是否正常触发

可以在事件方法中临时添加调试代码,验证点击行时是否进入方法:

// 临时调试用,测试后可删除
MessageBox.Show("行点击事件已触发");

如果没有弹出提示,说明事件未正确绑定,可手动在窗体构造函数中添加事件注册:

public YourFormName()
{
    InitializeComponent();
    // 手动绑定CellClick事件
    usersgv.CellClick += Usersgv_CellClick;
}

private void Usersgv_CellClick(object sender, DataGridViewCellEventArgs e)
{
    // 你的填充代码
}

内容的提问来源于stack exchange,提问作者Dulashani Sithara

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 00:44:53