VB如何选择所有类型控件并将文本设置为空?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (103)

我正在编写一个序列竞猜游戏,想要编程。每当你输入错误的数字,它就会重置所有标签,如何选择标签类型并使text=Nothing?我试过这个(https://msdn.microsoft.com/en-us/library/yt340bh4.aspx),但它不起作用

谢谢

  Imports System.Media
Public Class comboForm

    Dim score As Integer = 0
    Dim winsound As New SoundPlayer(My.Resources.winsound_wav)



    ' 1 7 8 8 4 7 1 5 5



    Private Sub btn1_Click(sender As Object, e As EventArgs) Handles btn1.Click
        If score = 0 Then
            score += 1
            lblStage1.Text = "1"
        ElseIf score = 7 Then
            score += 1
            lblStage7.Text = "7"
        Else
            score = 0
            For Each lbl In tlpMain.Controls.OfType(Of Label)()
                lbl.Text = Nothing
            Next


        End If

    End Sub
End Class
提问于
用户回答回答于
For Each lbl In Me.Controls.OfType(Of Label)()
    '...
Next

OfType方法基本上是一个列表中的类型筛选器。

For Each ctrl In Me.Controls
    If TypeOf ctrl Is Label Then
        Dim lbl = DirectCast(ctrl, Label)

        '...
    End If
Next

或者这个:

For Each ctrl In Me.Controls
    Dim lbl = TryCast(ctrl, Label)

    If lbl IsNot Nothing Then
        '...
    End If
Next

显然,此代码只能在表单上直接访问Labels,因为它使用表单的Controls集合。使用适当的Controls容器的集合,例如Panel访问该容器中的控件。

扫码关注云+社区

领取腾讯云代金券