2009-05-24 10 views
2

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

public class BaseDetailLabel : System.Windows.Forms.Label 
{ 
    public BaseDetailLabel() 
    { 
     System.Drawing.Font f = new Font(this.Font,FontStyle.Bold); 
     this.Font = f; 
    } 
} 

ответ

2

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

Простой подход конструктора не предотвратит переопределение, просто устанавливает начальное значение. Я думаю, это то, чего вы хотите. Чтобы принудительно выделить Bold, вам придется переопределить метод OnPaint.

Об обонянии: это не фантазия, но это происходит с территорией. Вы применяете правило стиля, в котором нет хороших (лучших) способов атаки. Если вы не хотите создать целую систему стилей.

2

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

+0

Обновлено с помощью инструкции. –

Смежные вопросы