【发布时间】:2014-06-20 22:05:15
【问题描述】:
我是 VB.NET 的新手,我尝试创建一个简单的应用程序。我的需要是创建一个带有一些列表框的表单,并且我只想同时选择一个项目。我在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
我怎么可能在运行时选择了多个项目?我唯一要做的就是非常快速地在列表框项目之间单击!
我没有发布图片的声誉,但我可以保证就像我说的那样。我尝试在另一台电脑上运行该应用程序,但结果相同。
我有Windows 7 64 bit 和.NET 4.0。
在新版本中,我在第一个 if 之前写了一个Console.WriteLine(sender.name)。当问题发生时,似乎最后一次点击事件丢失了,因为我没有找到最后一次点击的列表框的名称!
为了确认这一点,当这两个项目被选中时,如果我插入一个断点并查看列表框的 selecteditem 属性的值,我有效地看到其中两个具有值 -1。
【问题讨论】:
-
您是否在抱怨鼠标按下时屏幕上有两个选项?
-
你好,阿巴斯,不是在鼠标按下时而是在单击之后,所以我的鼠标上没有手,屏幕上有两个选定的项目...
-
我不是阿巴斯。您的代码有效(除了您未能将 sender 转换为 ListBox 对象),因此不清楚您有什么问题。 SelectedIndexChanged 是更适合使用的事件。
-
抱歉我的错误 LarsTech。我无法理解我怎么可能
-
尝试在一个新项目上复制问题,只使用两三个 ListBox。我的猜测是您在其他地方有影响此的代码。
标签: vb.net