我想知道是否有人有建议或提示改进我的代码的以下功能。基本上我正在制作一个更新/修改表单,它从数据库表填充其字段,到目前为止所有内容都很有用,直到我到达组合框。
我有三个,角色,身份和性别。问题是当我加载当前用户的信息时:
Dim lstDatos As New ArrayList()
lstDatos = gestorUsuario.consultarUsuario(idUsuario)
txtNombre1.Text = lstDatos(0)
txtNombre2.Text = lstDatos(1)
txtApellido1.Text = lstDatos(2)
txtApellido2.Text = lstDatos(3)
cmbGenero.DisplayMember = lstDatos(4) 'HERE
txtCorreo.Text = lstDatos(5)
txtCedula.Text = lstDatos(6)
txtTelefono.Text = lstDatos(7)
cmbRol.Text = lstDatos(8) 'HERE
cmbEstado.Text = lstDatos(9) 'And Here
只能选择用户当前的Rol,Estado和Gender,以解决我做出以下问题的方法:
Private Sub updateRol(sender As Object, e As EventArgs) Handles cmbRol.Click
actualizarComboBox()
End Sub
调用actualizarFunction:
Private Sub actualizarComboBox()
cmbGenero.Items.Add("Masculino")
cmbGenero.Items.Add("Femenino")
cmbEstado.DataSource = gestorUsuario.consultarEstados
cmbEstado.DisplayMember = "nombre_estado"
cmbEstado.ValueMember = "id_estado"
cmbRol.DataSource = gestorRol.consultarRoles
cmbRol.DisplayMember = "nombre"
cmbRol.ValueMember = "id_rol"
End Sub
它实际上是诚实的但是......第一次选择comboBox时,你可以在加载其他选项时看到可见的跳转,当我点击组合时它会自动丢失"占位符&#34 ;如果您愿意,可以使用用户的当前信息并直接进入第一个选项。
所以,如果我有:
* B
作为我的用户的当前cmbRol.Text
,我点击了ComboBox,它会闪烁一些,然后更改为:
* A -B -C
其中*表示选中或突出显示的选项。 如果有人有任何建议或提示,我将非常感激。非常感谢。
答案 0 :(得分:1)
替换
cmbGenero.DisplayMember = lstDatos(4) 'HERE
cmbRol.Text = lstDatos(8) 'HERE
cmbEstado.Text = lstDatos(9) 'And Here
为此:
cmbGenero.SelectedItem = lstDatos(4) 'SelectedItem is sufficient because cmbGenero is not binding to Data Base
cmbRol.SelectedValue = lstDatos(8) 'SelectedValue is required because cmbRol and cmbEstado is binding to Data Base
cmbEstado.SelectedValue = lstDatos(9)