如何随机选择列表框值成员?

时间:2014-12-10 14:19:26

标签: database vb.net random listbox

我有一个填充了数据源的列表框,数据源是一个带有数字主键的访问数据库。主键设置为列表框的值成员。我想点击一个按钮,随机选择列表框中的一个项目。

我一直在努力:

Public Class Form1
Dim rnd As New Random

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'Fills listbox, adds Valuemember and Displaymember
     Me.Recipe_tableTableAdapter.Fill(Me.Recipes2DataSet.recipe_table)
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Dim randomIndex1 As Integer = rnd.Next(1, ListBox1.Items.Count)
    ListBox1.SelectedValue = randomIndex1
End Sub

这种工作,但我得到一个唯一的值异常,因为它看起来像是选择尝试添加到数据库。我只想随意选择一个项目。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

在这种情况下,更好的方法是更改​​列表框的索引而不是值本身。通过更改SelectedIndex而不是SelectedValue,列表框的实际值没有任何变化。试试这个:

ListBox1.SelectedIndex = rnd.Next(0, ListBox1.Items.Count)

请记住索引是从零开始的,这就是为什么Random.Next方法中指定的下限为零的原因。