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

Is there an easier way to do this?

我正在遍历列表框,我需要获得与执行 .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".

肯定有更好的方法来做到这一点。

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

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

因为我用数据表填充了列表框,所以下面的代码有效。我没有意识到那是被退回的东西。

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