Перекрашивание селективных рекурсивных компонентов в VB - PullRequest
0 голосов
/ 27 апреля 2011

Я задавал очень похожий вопрос раньше, но на этот раз речь идет не о синтаксисе VB, а о лучшем подходе.Я делаю метод, который при передаче компонента перекрашивает его и все компоненты, содержащиеся в нем.Ниже приведен код, который у меня есть, но он перекрашивает не все компоненты, а всего лишь несколько.Моя основная проблема - кнопки, которые остаются в своих «трехмерных» стилях и не становятся «плоскими».

    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

Передан компонент comp, а метод getColor просматривает базу данных и возвращает цветсоответствует параметру part, переданному методу.Это работает для всех низкоуровневых компонентов и всех простых компонентов, таких как метки.

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

Как видите, это не мой предпочтительный результат. Кто-нибудь знает, как перекрасить счетчики, кнопки и строки меню? Опять же, мне нужна кнопка, чтобы в итоге она оказалась плоской .

1 Ответ

0 голосов
/ 27 апреля 2011

Вы можете нарисовать свои собственные строки меню. Смотри: 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

...