ComboBox切换选中项时,如何在Label1中显示对应项的id?
解决ComboBox切换选项时显示对应ID的问题
你的问题出在初始化时直接循环给Label赋值,这只会让Label最后停在最后一条数据的ID上,而且完全没处理ComboBox选项切换的事件。下面是正确的实现方式:
步骤1:用数据绑定替代手动循环添加项
直接把DataTable绑定到ComboBox,指定显示的文本和对应的ID值,不用自己写循环就能自动关联ID和显示文本:
Dim dt As DataTable dt = exec("SELECT id,property_name FROM tbl_property") If dt.Rows.Count > 0 Then ' 设置ComboBox的数据源 prop.DataSource = dt ' 用户看到的显示字段 prop.DisplayMember = "property_name" ' 后台关联的ID值字段 prop.ValueMember = "id" End If
步骤2:添加ComboBox选中变更事件处理
双击ComboBox(或者在事件列表里找到SelectedIndexChanged),添加以下代码,切换选项时自动更新Label内容:
Private Sub prop_SelectedIndexChanged(sender As Object, e As EventArgs) Handles prop.SelectedIndexChanged ' 确保有选中项时才赋值 If prop.SelectedValue IsNot Nothing Then Label1.Text = prop.SelectedValue.ToString() End If End Sub
原代码问题说明
你原来的循环只是在初始化阶段把每个项的ID依次覆盖Label的值,循环结束后自然只剩最后一条的ID。而且没有监听ComboBox的选项切换动作,所以切换选项时不会触发任何更新逻辑。
内容的提问来源于stack exchange,提问作者Gerry
相关产品推荐
相关产品推荐

