Используйте класс. net Random
вместо старых методов VB6. Вызов Random.Next(Interger1, Integer2)
вернет Integer
, равное или большее, чем Integer1
и меньшее, чем Integer2
. Обратите внимание, что, поскольку значения настолько ограничены, существует большая вероятность наличия дубликатов в списке.
Хотя сработает несколько ElseIf
s, Select Case
легче читать и меньше печатать.
Я поместил содержимое списка в ListBox
, чтобы мы могли видеть, что происходит. Я использовал Remove
метод List(Of T)
и затем связал ListBox
.
Private lista As New BindingList(Of String)
Private rand As New Random
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
BuildList()
ListBox1.DataSource = lista
End Sub
Private Sub BuildList()
Dim i = 0
Dim a As Integer
Do While i < 3 'since n never changes just use the literal value
a = rand.Next(1, 5)
Select Case a
Case 1
lista.Add("1b")
Case 2
lista.Add("2b")
Case 3
lista.Add("3b")
Case 4
lista.Add("4b")
End Select
i = i + 1
Loop
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 'Remove from list
lista.Remove(ListBox1.SelectedItem.ToString)
End Sub