叫我疯了,但对于我的生活,我无法做到这一点。我有以下代码:
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)
我正在尝试为表单上的所有按钮设置字体黑色和常规(有很多),按钮只是单击,加粗和蓝色。
代码的第二部分工作(使字体变为粗体和蓝色),它是第一部不仅仅是工作。
我错过了什么?
答案 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)
没关系我发现了我的问题。按钮位于组框中,因此我必须直接引用组框