VB在所有按钮上更改悬停颜色

时间:2017-07-13 12:48:43

标签: vb.net

我目前使用此代码更改所有按钮上的Fore或背面颜色:

Private Sub SetAllLabelsForeColor(ByVal parent As Control)

    For Each c As Control In parent.Controls
        If TypeOf (c) Is Button And c.BackColor = Color.Red Then
            c.FlatAppearance.MouseOverBackColor = Color.White 'I AM STUCK HERE
        Else
            If c.HasChildren Then
                SetAllLabelsForeColor(c)
            End If
        End If
    Next

End Sub

如果我想知道是否有机会改变" On Hover"所有这些按钮上的颜色。我通常可以通过以下方式更改悬停颜色:

Button1.FlatAppearance.MouseOverBackColor = Color.White

但似乎对手并不认识FlatAppearance。我已经尝试过以下代码,但它不起作用:

c.FlatAppearance.MouseOverBackColor = Color.White

我是否有替代方式或类似方式更改所有按钮上的悬停颜色?

1 个答案:

答案 0 :(得分:1)

您需要将控件转换为按钮:

Dim b = DirectCast(c, Button)
b.FlatAppearance.MouseOverBackColor = Color.White 'I AM STUCK HERE

这使您可以访问所需内容。