在Visual Basic中调用子例程后禁用进一步的列表框输入



这是我的子程序,通过双击列表框中的文本"LstAnswer4"我在表单上有4个列表框,并希望在双击其中一个后禁用任何进一步的输入。

Public Sub LstAnswer4_MouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles lstAnswer4.MouseDoubleClick
If res4 = 2 Then
MsgBox("correct")
Score = Score + 1
ListBox1.Items.Clear()
Dim displayscore As Object
displayscore = (Score & " out of " & outof)
ListBox1.Items.Add(displayscore)
Else MsgBox("wrong")
End If
End Sub

我们可以这样禁用列表框:

Listbox1.Enabled=false

假设您想禁用所有4(+)个列表框,有几种方法可以达到此目的。

如果你想禁用表单中所有的列表框,你可以禁用所有类型为listbox的控件:

For Each Contr As Control In Me.Controls
If Contr.GetType() = GetType(ListBox) Then
Contr.Enabled = False
End If
Next

如果表单上有列表框,你不想禁用,但你做了类似的命名(例如:LstAnswerx)),您可以使用通配符/StartsWith来匹配控件名称的开头:

For Each Contr As Control In Me.Controls
If Contr.GetType() = GetType(ListBox) And Contr.Name.StartsWith("LstAnswer") Then
Contr.Enabled = False
End If
Next
Me.Enabled = False

非常安全:)

相关内容

最新更新