2012-07-01 6 views
0

Я использую этот код, чтобы сделать все мои текстовые поля тем же шрифт:Изменение шрифта в C#?

  if (textBox1.Font.Underline) 
     { 
      foreach (Control y in this.Controls) 
      { 
       if (y is TextBox) 
       { 
        ((TextBox)(y)).Font = new Font(((TextBox)(y)).Font, FontStyle.Regular); 
       } 
      } 
     } 
     else 
     { 
      foreach (Control y in this.Controls) 
      { 
       if (y is TextBox) 
       { 
        ((TextBox)(y)).Font = new Font(((TextBox)(y)).Font, FontStyle.Underline); 
       } 
      } 

Допустит, я нажмите кнопку смелой. Текст будет выделен жирным шрифтом. Когда я нажимаю кнопку подчеркивания, текст должен быть полужирным и подчеркнутым, но он только подчеркивается ??? ЗАЧЕМ?

ответ

7

FontStyle это перечисление можно Or их вместе, чтобы добавить или Xor удалить ,

т.е.

добавить подчеркиванием существующего стиля:

textBox1.Font = new Font(textBox1.Font, textBox1.Font.Style | FontStyle.Underline); 

удалить подчеркивание стиля:

textBox1.Font = new Font(textBox1.Font, textBox1.Font.Style^FontStyle.Underline); 

и вы можете проверить, для которых Перечисления в Font.Style по делая это.

if ((textBox1.Font.Style.HasFlag(FontStyle.Underline))) 
{ 
    textBox1.Font = new Font(textBox1.Font, textBox1.Font.Style^FontStyle.Underline); 
} 
else 
{ 
    textBox1.Font = new Font(textBox1.Font, textBox1.Font.Style | FontStyle.Underline); 
} 
1

вы можете попробовать использовать что-то вроде этого

List<Control> controls = Controls.OfType<TextBox>().Cast<Control>().ToList(); 
    foreach (Control m in controls) 
    { 
     if (m.Font.Bold) 
     { 
      m.Font = new Font(m.Font, FontStyle.Underline); 
     } 
     else 
     { 
      m.Font = new Font(m.Font, FontStyle.Bold); 
      m.Font = new Font(m.Font, FontStyle.Underline); 
     } 

    } 
+0

все еще делает то же самое. Мне нужно, чтобы добавить стиль. Например, если у меня есть жирный шрифт, и я нажимаю подчеркивание, я хочу, чтобы он был смелым и подчеркивающим. –

+0

@Elite Gamer см. Обновление –

+0

Имейте в виду, что у меня есть кнопка подчеркивания, ** жирная кнопка ** и кнопка _italic_ –

0

Вместо

((TextBox)(y)).Font = new Font(((TextBox)(y)).Font, FontStyle.Underline); 

использования

((TextBox)(y)).Font = new Font(((TextBox)(y)).Font.FontFamily, ((TextBox)(y)).Font.Size, FontStyle.Underline); 
Смежные вопросы