Управление отображением пользовательского элемента управления - PullRequest
2 голосов
/ 25 мая 2009

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

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

Ответы [ 2 ]

2 голосов
/ 25 мая 2009

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

2 голосов
/ 25 мая 2009

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

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

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

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