VB.NET中如何选中DataGridView行实现文本框自动填充(关联SQL)
DataGridView选中行自动填充文本框实现方案
你的现有代码逻辑方向正确,未生效通常由三个原因导致:代码未绑定到正确的触发事件、DataGridView选择模式未设置为整行选中、未处理空值和类型匹配问题。
实现步骤
1. 配置DataGridView基础属性(设计器设置或窗体加载事件中配置均可)
' 设置为整行选中模式,避免点击单元格时无法选中整行 DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect ' 关闭多选,避免选中多行时文本框内容被覆盖 DataGridView1.MultiSelect = False
2. 绑定SelectionChanged事件并编写逻辑
将代码写入DataGridView的SelectionChanged事件中,点击选中行时会自动触发该事件:
Private Sub DataGridView1_SelectionChanged(sender As Object, e As EventArgs) Handles DataGridView1.SelectionChanged ' 先判断是否存在选中行,避免空引用报错 If DataGridView1.SelectedRows.Count > 0 Then ' 推荐用列名取值,列顺序调整时无需修改代码,稳定性更高 TextBox1.Text = DataGridView1.SelectedRows(0).Cells("ID").Value?.ToString() ' 若要使用索引取值可替换为下方代码 ' TextBox1.Text = DataGridView1.SelectedRows(0).Cells(0).Value?.ToString() End If End Sub
代码优化说明
- 无需循环遍历所有选中行,关闭多选后直接取第一个选中行即可,运行效率更高
- 新增
?.空值传播运算符,避免ID列为空时抛出空引用异常 - 新增
ToString()方法统一转换为字符串格式,和TextBox的Text属性类型完全匹配 - 用列名代替索引取值,后续调整DataGridView列顺序时不需要修改代码,兼容性更强
内容的提问来源于stack exchange,提问作者jumexmango
相关产品推荐
相关产品推荐

