我在 VB 中有很多标签,我在With
语句中使用它们来设置它们的属性。
问题 有什么办法可以做如下的事情:
With lblA, lblB, lblC
.fontColor = color.Red
End With
这是可能的,还是我必须With
为每个人手动做一个声明?
我在 VB 中有很多标签,我在With
语句中使用它们来设置它们的属性。
问题 有什么办法可以做如下的事情:
With lblA, lblB, lblC
.fontColor = color.Red
End With
这是可能的,还是我必须With
为每个人手动做一个声明?
您的解决方案有一个更短且更具可读性的版本:
For Each lbl As Label In {lblA, lblB, lblC}
With lbl
'...
End With
Next
我会将这些类型的项目保留在一个列表中,然后对它们应用一个 for each 循环,假设它们都是相同的类型(或至少是基本类型)。假设您正在使用类型的控件,label
这将是一个解决方案。请注意,我已修改.fontColor
为.ForeColor
使此示例适用于 Label 类:
Dim lblList as new List(of Label) ({lblA, lblB, lblC})
lblList.ForEach(sub(x) x.Fore Color = color.red)
由于您已经发布了解决方案,您仍然可以执行以下操作以避免对您创建的数组进行迭代循环(这就是我将其作为列表执行的原因)而不必考虑数组大小或任何内容:
lblList.ForEach(Sub(x)
With x
.BackColor = Color.Black
.Dock = DockStyle.Top
.TextAlign = ContentAlignment.MiddleCenter
End With
End Sub)
这是我最终这样做的方式:
Dim arrayMe As Label() = {lblA, lblB, lblC}
For count = 0 To arrayMe.Length - 1 Step 1
With arrayMe(count)
.BackColor = Color.Black
.Dock = DockStyle.Top
.TextAlign = ContentAlignment.MiddleCenter
End With
Next
还有其他方法可以做到这一点,但我发现这很有用。