我有一个带分割面板的表格。在一个分区中是一组按钮,我想以编程方式更改最后按下的按钮的颜色。以下循环似乎正确运行并正确设置颜色,但表单不代表。一旦循环完成并重新检查按钮颜色,它们将恢复到先前的状态。
For Each formControl As Control In Me.FormSplitContainer.Panel1.Controls
If formControl.GetType() Is GetType(Button) Then
If CType(sender, Button) Is CType(formControl, Button) Then
CType(sender, Button).BackColor = Color.White
Else
CType(sender, Button).BackColor = System.Drawing.SystemColors.ControlDark
End If
End If
Next
我可以通过执行以下代码获得所需的效果,但看起来不那么优雅,显然需要更新,因为按钮会被添加或删除。
DataFeedButton.BackColor = System.Drawing.SystemColors.ControlDark
IncentiveButton.BackColor = System.Drawing.SystemColors.ControlDark
CType(sender, Button).BackColor = Color.White
任何人都能看到我错过的东西吗?
答案 0 :(得分:1)
将发件人分配给按钮变量,然后指定颜色。
dim b as button
然后在循环中,以这种方式分配:
b = sender
b.backcolor = color.white
答案 1 :(得分:0)
你在哪里调用这段代码?每次他们点击一个按钮?对我来说,它看起来像是将所有表单按钮的背景颜色设置为白色。我没看到你在测试“按下最后一个按钮”的情况。