testef
testef

Reputation: 3

Issue selecting only one item with multiple ListBoxes

I'm new to VB.NET and I've tried to create a simple application. My need is to create a form with some listboxes and I want to have only one item selected at the same time. I've written this code in the Form1 Class:

Public Class Form1

    Private Sub aggiornaQKI(sender As Object, e As System.EventArgs) _
        Handles ListBox1.Click, ListBox9.Click, ListBox8.Click, ListBox7.Click, _
                ListBox6.Click, ListBox5.Click, ListBox4.Click, ListBox3.Click, ListBox2.Click

        If sender.selectedindex >= 0 Then

            If sender.name <> "ListBox1" Then ListBox1.SelectedIndex = -1
            If sender.name <> "ListBox2" Then ListBox2.SelectedIndex = -1
            If sender.name <> "ListBox3" Then ListBox3.SelectedIndex = -1
            If sender.name <> "ListBox4" Then ListBox4.SelectedIndex = -1
            If sender.name <> "ListBox5" Then ListBox5.SelectedIndex = -1
            If sender.name <> "ListBox6" Then ListBox6.SelectedIndex = -1
            If sender.name <> "ListBox7" Then ListBox7.SelectedIndex = -1
            If sender.name <> "ListBox8" Then ListBox8.SelectedIndex = -1
            If sender.name <> "ListBox9" Then ListBox9.SelectedIndex = -1

        End If

    End Sub

End Class

How it's possible that I have more than one item selected at runtime? The only thing that I do is to click between listboxes items very quickly!

I have no reputation to post an image but I can guarantee that is like I've said. I've tried to run the application on another pc but is the same.

I have Windows 7 64 bit and .NET 4.0.

In a new version, I've written a Console.WriteLine(sender.name) before the first if. When the issue occur, it seems that the last click event was lost because I don't find the name of the last listbox clicked!

To confirm this, when the two items are selected, if I insert a breakpoint and go to see the value of the selecteditem property of the listboxes, I see effectively that two of that have values <> -1.

Upvotes: 0

Views: 243

Answers (1)

Jimmy Smith
Jimmy Smith

Reputation: 2451

The event you may want to use is SelectedIndexChanged. So instead of

handles Listbox1.Click

try

handles Listbox1.SelectedIndexChanged, Listbox2.SelectedIndexChanged

Upvotes: 1

Related Questions