按钮BackColor无法按预期工作

时间:2009-08-21 15:46:30

标签: vb.net controls

我有一个带分割面板的表格。在一个分区中是一组按钮,我想以编程方式更改最后按下的按钮的颜色。以下循环似乎正确运行并正确设置颜色,但表单不代表。一旦循环完成并重新检查按钮颜色,它们将恢复到先前的状态。

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

任何人都能看到我错过的东西吗?

2 个答案:

答案 0 :(得分:1)

将发件人分配给按钮变量,然后指定颜色。

dim b as button

然后在循环中,以这种方式分配:

b = sender
b.backcolor = color.white

答案 1 :(得分:0)

你在哪里调用这段代码?每次他们点击一个按钮?对我来说,它看起来像是将所有表单按钮的背景颜色设置为白色。我没看到你在测试“按下最后一个按钮”的情况。