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

发布于 2024-11-03 17:04:13 字数 705 浏览 2 评论 0原文

我以前问过一个非常类似的问题,但这次不是关于 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 参数相对应的颜色。这适用于所有低级组件和所有简单组件(例如标签)。

>你可以看到,这不是我想要的结果。 有人知道如何重新着色微调器、按钮和菜单栏吗?同样,我需要将按钮最终变成扁平的。

I've asked a very similar question before, but this time is not about VB syntax, but rather the best approach. I'm making a method that, when passed a component, will recolor it and all components contained within it. Below is the code I have so far, but it is not recoloring all components, instead only a mere few. My main problem is buttons staying in their "3D" styles and not becoming "flat".

    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

The component passed is comp, and the getColor method looks into a database and returns a color corresponding to the part parameter passed to the method. This works for all low-level components and all simple components like labels.

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

As you can see, this is not my preferred outcome. Does anyone know how to recolor spinners, buttons, and menu bars? Again, I need the button to end up being flat.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文