WinForms: Как правильно изменить стиль шрифта (подчеркивание) для метки во время выполнения? - PullRequest
6 голосов
/ 10 ноября 2008

C #: Как правильно изменить стиль шрифта (подчеркивание) для метки во время выполнения?

Пока я понимаю, что если вы хотите изменить связанные со шрифтом свойства во время выполнения от метки, в основном все свойства шрифта, вам придется использовать,

 lblName.Font = new Font(... etc. etc.

Есть ли ярлык вышеупомянутого, но только назначить только новый стиль шрифта, такой как FontStyle.Underline?

или

Должен ли я продолжить использование метода "new Font ()" и назначить все поля вместе с ним, чтобы подчеркнуть мой ярлык?

Ответы [ 4 ]

14 голосов
/ 10 ноября 2008

Как вы это сделали:

this.Font = new Font(this.Font, FontStyle.Underline);

правильно. Причина в том, что Font является закрытым и неизменным типом (по замыслу). Когда он появился в .NET 1, это показалось немного странным, но с сегодняшним акцентом на функциональное программирование, параллелизм и неизменность этот стиль виден гораздо больше. Возможно, это было сделано так, поскольку элементы управления наследуют шрифт своего контейнера, и отслеживание изменений отдельных свойств шрифта будет более трудоемким, чем отслеживание оптовых изменений шрифта.

1 голос
/ 17 марта 2012
//Bold.
    label1.Font = new Font(label1.Font.Name, 12, FontStyle.Bold); 

//Bold With Underline.
    label1.Font = new Font(label1.Font.Name, 12, FontStyle.Bold | FontStyle.Underline); 

//Bold with Underline with Italic.
    label1.Font = new Font(label1.Font.Name, 12, FontStyle.Bold | FontStyle.Underline | FontStyle.Italic); 
1 голос
/ 10 ноября 2008

прибегают к,

this.Font = новый шрифт (this.Font, FontStyle.Underline);

Работает для форм Win32.

0 голосов
/ 10 ноября 2008

Как насчет (я использую .Net Framework 2.0) Хорошо, это работает для веб-приложения. В приложении форм оно доступно только для чтения.

lblName.Font.Underline = true;

Вот определение:

    //
    // Summary:
    //     Gets or sets a value that indicates whether the font is underlined.
    //
    // Returns:
    //     true if the font is underlined; otherwise, false. The default value is false.
    [DefaultValue(false)]
    [NotifyParentProperty(true)]
    public bool Underline { get; set; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...