ListBox1.SelectedItem 的 If 语句

If statement for ListBox1.SelectedItem

当我尝试单击列表框中的项目然后尝试 运行 代码时,我总是收到错误消息。它告诉我一些有关将其转换为布尔值的信息,但我不完全确定。我尝试了 ToString() 但没有成功。

我不希望代码 运行 除非在列表框中选择了某些内容。

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    If ListBox1.SelectedItem Then
        ProgressBar1.Value = 0
        Timer1.Start()
        Button1.Enabled = False

        System.Threading.Thread.Sleep(2000)
        TextBox1.Refresh()
        TextBox1.Text &= "Preparing"
        TextBox1.Refresh()
        System.Threading.Thread.Sleep(2000)
        TextBox1.Refresh()
        TextBox1.Text &= Environment.NewLine & ""
        TextBox1.Refresh()
        System.Threading.Thread.Sleep(2000)
        TextBox1.Text &= Environment.NewLine & ""

    Else
        MsgBox("", 0, "")
    End If
End Sub

试试这个...

 If ListBox1.SelectedItems.Count > 0 Then ....

此外,如果您正在使用,除了 True 您可能想要更改此之外没有任何意义...

ListBox.SelectedItem returns ListBox 中的实际选定项,但 If 语句需要一个表达式来计算布尔值(真或假)。您要查找的可能是:

If (ListBox.SelectedItems.Count > 0) Then

根据您的代码,我的假设是您只想在 ListBox1 有选定项目时执行条件代码。但是 ListBox.SelectedItem 属性 不能像那样用作布尔值。

相反,考虑只检查列表框的选定索引,例如:

If ListBox1.SelectedIndex >= 0 Then
    [...]

希望对您有所帮助!如果您有任何问题,请告诉我。

编辑:或者,如果您想保留更多当前代码,您可以将您的条件设为 SelectedItemNothing 的比较:

If ListBox1.SelectedItem IsNot Nothing Then
    [...]