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

Windows Forms中点击DataGridView数据自动填充表单文本框的方法

实现思路与伪代码

核心步骤

  • 绑定DataGridView的CellClick或CellContentClick事件,作为数据传递的触发入口
  • 在事件处理逻辑中,先过滤表头行的无效点击,再获取当前点击单元格对应的数据
  • 遍历窗体控件集合,找到当前处于激活状态(Focused为true)的文本框
  • 将获取到的DataGridView数据赋值给该激活文本框的Text属性

伪代码示例

// 初始化时绑定DataGridView点击事件
dataGridView1.CellClick += DataGridView1_CellClick;

private void DataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
    // 跳过表头行点击
    if (e.RowIndex < 0) return;

    // 获取点击单元格的数据(也可指定列名取值,比如Cells["ColumnName"])
    var selectedValue = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value?.ToString() ?? "";

    // 查找当前激活的文本框(若文本框在容器控件内,需递归遍历)
    TextBox activeTxt = null;
    foreach (Control ctrl in this.Controls)
    {
        if (ctrl is TextBox txt && txt.Focused)
        {
            activeTxt = txt;
            break;
        }
    }

    // 给激活文本框赋值
    if (activeTxt != null)
    {
        activeTxt.Text = selectedValue;
    }
}

补充提示

  • 若动态文本框是运行时生成,需确保将其添加到窗体的Controls集合中,否则无法被遍历到
  • 如需传递整行数据,可通过dataGridView1.Rows[e.RowIndex].DataBoundItem获取绑定的数据源对象(如DataRowView),再提取对应字段值
  • Access数据库的数据源绑定不影响此逻辑,直接操作DataGridView的可视化数据即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 12:02:09