有没有更简单的方法可以做到这一点?

时间:2019-02-27 15:25:12

标签: vb.net listbox

我正在遍历一个列表框,我需要获得与执行.selectvalue时相同的值,但无需选择该行。这就是我现在的做法,而且似乎很愚蠢。

    For intCtr = 0 To lstUserRoleAll.Items.Count -1 
        lstUserRoleAll.SelectedIndex = intCtr
        InsertUserRoles(lstUserRoleAll.SelectedValue)
    Next

我已经读到lstUserRoleAll.Items(intCtr).value应该有效,但是value并不是其中的一员。另外,lstUserRoleAll.Items(intCtr).tostring为我提供了文本“ System.Data.DataRowView”。

当然有更好的方法可以做到这一点。

enter image description here

这是我用来添加行的代码:

        Dim rsSelectedGroups As DataTable
        strSQL = "SELECT UID, Name "
        [Rest of query]
        rsSelectedGroups = DataAccess.GetDataTable(strSQL)
        lstUserRoleCurrent.DataSource = rsSelectedGroups
        lstUserRoleCurrent.ValueMember = "UID"
        lstUserRoleCurrent.DisplayMember = "Name"

1 个答案:

答案 0 :(得分:0)

由于我用数据表填充了列表框,因此以下代码有效。我没有意识到那是返回的东西。

    For intCtr = 0 To lstUserRoleAll.Items.Count
        InsertUserRoles(lstUserRoleAll.Items(intCtr).Item("UID"))
    Next