0

このコードを使用して、すべてのテキスト ボックスを同じフォントにしています。

          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);
                }
            }

太字のボタンをクリックするとしましょう。テキストが太字になります。下線ボタンをクリックすると、テキストは太字で下線が引かれるはずですが、下線だけですか??? なぜ?

4

3 に答える 3

8

FontStyleOr一緒に追加または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);
}
于 2012-07-01T03:52:50.237 に答える
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);
      }

  }
于 2012-07-01T03:17:37.423 に答える
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);
于 2012-07-01T03:25:47.820 に答える