Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > C# Как сделать фон CheckBox как у фона самой формы


Автор: Zastra 29.1.2011, 16:56

Всем привет, помогите пожалуйста.
Мне нужно сделать чтобы фон Checkbox, был такой же как и у картинка фона формы. 
Для этого я в свойстве FlatStyle Checkbox'а поставил значение "System". Получилось как надо, НО текст надписи только чёрный и поменять его не получается.
Вопрос: как поменять цвет текста?

Вот картинка как оно должно быть, но только с белым, например, цветом.

http://s2.ipicture.ru/

Автор: Экскалупатор 29.1.2011, 17:17
Код

this.checkBox1.ForeColor = Color.White;



p.s. название темы должно отражать суть темы.

"Как сделать фон CheckBox" и "как поменять цвет текста?" немного разные темы? не так ли?

Автор: Zastra 29.1.2011, 17:29
Экскалупатор, спасибо за совет, но Ваш вариант не работает, цыет по прежнему остаётся чёрным

Автор: Экскалупатор 29.1.2011, 17:32
значит он где то меняется после того как ты выставляешь каким он должен быть.

Автор: Zastra 29.1.2011, 17:35
Экскалупатор, нет, точно нет. я ставлю в свойствах latStyle значение "System" и потом какое значение цвета не поставлю всё равно он чёрный. Подозреваю что этого при "System" цвет может быть только чёрным : (

Автор: Экскалупатор 29.1.2011, 17:35
скорее всего из-за
Код

            this.checkBox1.FlatStyle = FlatStyle.System;


поменяй на standart

Добавлено через 29 секунд
*не обновил страницу перед ответом

Добавлено через 4 минуты и 20 секунд
http://msdn.microsoft.com/ru-ru/library/system.windows.forms.flatstyle%28VS.90%29.aspx
если ставить system то применяются системные настройки а пользовательские игнорятся. ставь другой и будет все ок.

Автор: Zastra 29.1.2011, 19:10
Экскалупатор, так другие с бэкграундом, а этот прозрачный ,как раз то что мне нужно

Автор: Zastra 29.1.2011, 20:35
Помогли на другом форуме, отлично работет:

Создайте отдельный класс (файл):

Код

    class CheckBoxEx : CheckBox
    {
        public CheckBoxEx()
            : base() {
                this.SetStyle(ControlStyles.SupportsTransparentBackColor | ControlStyles.UserPaint, true);
                this.SetStyle(ControlStyles.Opaque, false);
                this.UpdateStyles();
        }
    }


Дальше в ToolBox будет контрол CheckBoxEx, его и используйте взамен обычного CheckBox."

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)