首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >VB如何选择所有类型的控件并将文本设置为Nothing

VB如何选择所有类型的控件并将文本设置为Nothing
EN

Stack Overflow用户
提问于 2018-08-07 07:38:35
回答 1查看 1.9K关注 0票数 -3

我正在编写一个序列猜测游戏,我想对它进行编程,这样每当你输入一个错误的数字时,它就会重置所有的标签,我如何通用地选择标签类型并使文本= Nothing我尝试过this,但它不起作用

谢谢

代码语言:javascript
复制
  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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-07 07:42:51

代码语言:javascript
复制
For Each lbl In Me.Controls.OfType(Of Label)()
    '...
Next

OfType方法基本上是一个列表上的按类型过滤。这段代码相当于下面的代码:

代码语言:javascript
复制
For Each ctrl In Me.Controls
    If TypeOf ctrl Is Label Then
        Dim lbl = DirectCast(ctrl, Label)

        '...
    End If
Next

或者这样:

代码语言:javascript
复制
For Each ctrl In Me.Controls
    Dim lbl = TryCast(ctrl, Label)

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51716951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档