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
相关产品推荐
相关产品推荐

