VB中的选择性递归组件重新着色

时间:2011-04-27 19:46:39

标签: vb.net button recursion colors flat

之前我曾问过一个非常类似的问题,但这次不是关于VB语法,而是最好的方法。我正在制作一种方法,当传递一个组件时,它将重新着色它和其中包含的所有组件。下面是我到目前为止的代码,但它不是对所有组件进行重新编码,而只是少数几个。我的主要问题是按钮保持“3D”风格而不会变得“平坦”。

    If TypeOf comp Is System.Windows.Forms.ButtonBase Then
        Dim c As System.Windows.Forms.ButtonBase
        c = comp
        c.FlatStyle = Windows.Forms.FlatStyle.Flat
        c.BackColor = getColor(style, PART_BOX)
        c.ForeColor = getColor(style, PART_TEXT)

        comp = c
    End If

传递的组件是compgetColor方法查看数据库并返回与传递给方法的part参数对应的颜色。这适用于所有低级组件和所有简单组件,如标签。

This is what happens. As you can see, the colors are fetched and applied properly to many components, but not all.

如您所见,这不是我的首选结果。 有没有人知道如何重新着色微调器,按钮和菜单栏?再次,我需要按钮最终 flat

1 个答案:

答案 0 :(得分:0)

您可以绘制自己的菜单栏。请参阅:http://msdn.microsoft.com/en-us/library/tdk48z0c(v=VS.100).aspx

按钮具有BackColor属性和FlatStyle属性:

http://msdn.microsoft.com/en-us/library/system.windows.forms.buttonbase.flatstyle.aspx