Re: Random listbox item selection



On Dec 21, 2:55 pm, Family Tree Mike
<FamilyTreeM...@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
"Family Tree Mike" wrote:

"kimiraikkonen" wrote:

On Dec 21, 12:46 am, Charlie Brown <cbr...@xxxxxxxxxx> wrote:
On Dec 20, 4:58 pm, kimiraikkonen <kimiraikkone...@xxxxxxxxx> wrote:

On Dec 20, 7:43 pm, Kerry Moorman

<KerryMoor...@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
Family Tree Mike,

I think that should be:

listBox1.SelectedIndex = r.Next ( 0, listBox1.Items.Count)

because the range of values returned by Next includes the minvalue but
excludes the maxvalue.

Kerry Moorman

"Family Tree Mike" wrote:

"kimiraikkonen" wrote:

Hi,
How can i select next listbox item without obeying array order? How to
select an listbox item "randomly" inside the array?

Thanks.

dim r as new Random
listBox1.SelectedIndex = r.Next ( 0, listBox1.Items.Count - 1 )

Thanks "Kerry Moorman" and "Family Tree Mike",
It worked. The last question is: how may i determine if all the
listbox items were selected randomly? I mean, after all the listbox
items are selected, i want to get a msgbox that all the listbox items
are selected randomly, there's no item left unselected(in random
order).(just like an information about end of list)

Thanks!- Hide quoted text -

- Show quoted text -

try something like

if listbox.items.count = listbox.selecteditems.count then
'do something
end if

Hi, that doesn't work, only works with listbox's multiselect
(multiselect at the same time) function which is offtopic. I want to 2
thins if anyone can help:

For random selection procedure(as Kerry and Family Tree Mike helped);
1- I want an listbox item selected only for once, i don't want a
listbox item selected for twice or three (random order).
2-When all the items are selected in a random order, i want to get a
msgbox("all items were selected, there is no item left unselected in
random order").

Thanks!

I think you want something like this. the list loi should be a form level
member while the rest is in a routine where you are changing the selected
item. Somehow, depending on your requirements, you will need to know that
the routine could not pick any more entries.

Here is the code:

Dim loi As New System.Collections.Generic.List(Of Integer)

public bool NextRandomClick()
Dim r As New Random
Dim idx As Integer

If (loi.Count = ListBox1.Items.Count) Then
MsgBox("All have been selected...")
Return false
End If

idx = r.Next(0, ListBox1.Items.Count)

While (loi.Contains(idx))
idx = r.Next(0, ListBox1.Items.Count)
End While

ListBox1.SelectedIndex = r.Next(0, ListBox1.Items.Count - 1)
return true
end function

All right... It's an early morning... I fixed it up som more...

Dim loi As New System.Collections.Generic.List(Of Integer)

public bool NextRandomClick()
Dim r As New Random
Dim idx As Integer

If (loi.Count = ListBox1.Items.Count) Then
MsgBox("All have been selected...")
Return false
End If

idx = r.Next(0, ListBox1.Items.Count)

While (loi.Contains(idx))
idx = r.Next(0, ListBox1.Items.Count)
End While

ListBox1.SelectedIndex = idx
loi.Add(idx)
return true
end function

However, currently the thing that i want to implement is not to select
an listbox item more than once in random order. In second and third
posts, as Kerry and Mike helped, random selection code works good but
usually (not so frequently) it selects the "same" item for twice or
third consecutively on next selections. It seems the random selection
algorithm is not fascinating, that's why i want not to see an listbox
item selected more than once in random selection order. An item must
be selected only for "once" That's my main purpose. I hope you would
help :-)

Thanks!
.



Relevant Pages

  • Re: Random listbox item selection
    ... How can i select next listbox item without obeying array order? ... Dim r As New Random ... Dim idx As Integer ... Still, the selection goes endless,never ends. ...
    (microsoft.public.dotnet.languages.vb)
  • RE: form w/ listbox, select record to show the rest on the form...
    ... I changed it to a listbox. ... Now, I can make the selection, and it jumps to ... Private Sub ComboSearch_AfterUpdate ... Dim rs As Object ...
    (microsoft.public.access.forms)
  • Re: Populating 1 listbox from another listbox
    ... with the selection from listbox A.  I have set multi-select in both ... The user will select the items from listbox A and click an Add button ... Dim ctlSource As Control ... ' Reset destination control's RowSource property. ...
    (comp.databases.ms-access)
  • Query using 3 listboxes
    ... I can manage it with one listbox using ... Dim MyDB As DAO.Database ... Dim strWhere As String ... MsgBox "Please make a selection from each list",, "Selection ...
    (microsoft.public.access.formscoding)
  • Re: Random listbox item selection
    ... How can i select next listbox item without obeying array order? ... For random selection procedure; ... Dim r As New Random ... Dim idx As Integer ...
    (microsoft.public.dotnet.languages.vb)