Re: Random listbox item selection





"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


.



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: 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)
  • 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 ... It seems the random selection ...
    (microsoft.public.dotnet.languages.vb)
  • Re: Last Selection from MultiSelect Listbox
    ... What you can do is track the listbox selection in an array by modifying an array every time the listbox is changed. ... Dim idx As Integer, i As Integer ...
    (microsoft.public.excel.programming)
  • Re: Select range & copy
    ... I changed the range name of the ListBox stuff to mRefList ... "tvac" wrote: ... > Private Sub ListBox1_Click ... >> The first 2 columns have common data regardless of the selection. ...
    (microsoft.public.excel.programming)