Значения элементов управления пользовательского интерфейса не устанавливаются во время выполнения - PullRequest
0 голосов
/ 08 сентября 2010

У меня есть библиотека базовых классов, которая содержит все элементы управления пользовательского интерфейса с расширенными возможностями.

Ex: XTextBox <---derived from------ TextBox
    XPanel   <---derived from------ Panel
    XLabel   <---derived from------ Label

Я использую эту библиотеку в своем клиентском приложении для визуализации элементов управления в пользовательском интерфейсе.

У меня есть файл AppConfig, который определяет шрифт / цвет для моего клиентского приложения.

Теперь возникает проблема, когда я устанавливаю значения шрифта для элементов управления в моей библиотеке базовых классов.

Дляпример: задний цвет XTextBox читается из служебного класса CUtility , который считывает информацию о цвете из файла exe.Config

 this.BackColor = CUtility.GetBackColor();
 //this represents the XTextBox control.

Много раз задний цвет не устанавливается для некоторыхЭлементы управления пользовательским интерфейсом во время выполнения (например, панели и некоторые элементы управления пользовательским интерфейсом)

Однако эти цвета устанавливаются, если я делаю это из дизайнера пользовательского интерфейса.

Любые идеи, где я делаю неправильно.*

С уважением

Ответы [ 2 ]

2 голосов
/ 08 сентября 2010

Свойство BackColor является специальным, это свойство 'ambient'.Если он был никогда , то он автоматически получит значение родительского BackColor.Это очень хорошо, он автоматически устанавливает все цвета фона дочернего элемента управления, когда вы, например, изменяете цвет фона формы.Другими свойствами, которые ведут себя таким образом, являются ForeColor, Cursor и Font.

Похоже, это ваша проблема.Начните с просмотра свойства BackColor элементов управления, которые не окрашены правильно в окне свойств.Если он выделен жирным шрифтом, щелкните его правой кнопкой мыши и выберите «Сброс».Просмотр метода InitializeComponent () и поиск назначений BackColor - это быстрый способ найти их все.

Затем проверьте, назначают ли ваши пользовательские элементы управления свойство BackColor явно.

0 голосов
/ 08 сентября 2010

проверьте, что CUtility.GetBackColor () возвращает значение при установке на панель

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...