在VB.net中更改窗体上所有按钮的文本

时间:2015-04-23 19:20:40

标签: vb.net

叫我疯了,但对于我的生活,我无法做到这一点。我有以下代码:

    Dim cControl As Control
    For Each cControl In Me.Controls
        If (TypeOf cControl Is Button) Then
            cControl.ForeColor = Color.Black
            cControl.Font = New Font(cControl.Font, FontStyle.Regular)
        End If
    Next cControl

    Me.ActiveControl.ForeColor = Color.Blue
    Me.ActiveControl.Font = New Font(Me.ActiveControl.Font, FontStyle.Bold)

我正在尝试为表单上的所有按钮设置字体黑色和常规(有很多),按钮只是单击,加粗和蓝色。

代码的第二部分工作(使字体变为粗体和蓝色),它是第一部不仅仅是工作。

我错过了什么?

2 个答案:

答案 0 :(得分:1)

我之前从未尝试过这样的事情,但我已经使用Linq来完成你想要的任务。

Dim btn() As Button
btn = Me.Controls.OfType(Of Button)().Where(Function(c) c.Name.Contains("")).ToArray()

这将基本上从您的表单创建一个按钮数组,然后您可以遍历每个按钮。

Dim i As Integer = 0
While i < btn.Count
                btn(i).Enabled = True
                btnText(i).BackColor = Color.DarkOliveGreen
                btnText(i).ForeColor = Color.White
                i += 1
End While

如果您有按钮的命名约定,并且只想更改空引号所在的某些按钮,则可以使用“btnTest”。

然后您将获得包含文本“btnTest”的任何按钮的索引。所以这将包括“btnTest1”,“btnTest2”,“btnTestAnything1234”等。

希望这有帮助,你可以使用它!

答案 1 :(得分:0)

没关系我发现了我的问题。按钮位于组框中,因此我必须直接引用组框