【问题标题】:Issue selecting only one item with multiple ListBoxes仅选择一个具有多个列表框的项目的问题
【发布时间】: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


【解决方案1】:

您可能要使用的事件是 SelectedIndexChanged。所以而不是

handles Listbox1.Click

试试

handles Listbox1.SelectedIndexChanged, Listbox2.SelectedIndexChanged

【讨论】:

  • 是的,我昨天已经尝试过了,但由于那个事件,问题没有发生:但是为什么?
  • 因为点击事件是通用的,在每个控件上,任何时候你在控件的空间内点击,我相信在索引实际改变之前。
  • 感谢您的回复。也许正如你所解释的那样......我只是在寻找我将来可以避免的东西......我不确定我是否总是能够识别“更合适”
猜你喜欢
  • 1970-01-01
  • 2021-11-26
  • 1970-01-01
  • 2021-11-23
  • 1970-01-01
  • 1970-01-01
  • 2013-01-22
  • 2014-01-23
  • 1970-01-01
相关资源
最近更新 更多