2012-03-19 22 views
2

から太字のfontStyleを削除します太字と太字との間のfontstyle。これは単純なはずです...私は基本的に切り替えるしようとしているコントロールを持って、私はこれを掲示本当のnoobのように感じるが、私はこれのために何かを見つけるように見えることはできません...</p> <p>コントロールのFont

ただし、Control.Font.Boldプロパティは読み取り専用であるためアクセスできません。したがって、Fontプロパティを変更する必要があります。

それを太字にするには、私はちょうどこの操作を行います。

this.btn_buttonBolding.Font = new Font(this.btn_buttonBolding.Font, FontStyle.Bold); 

ない理想的なのが、それは動作します。しかし、この大胆なスタイルを削除するにはどうすればよいですか(それは既に大胆です)。

重複しているように見えました。私は見つけることができる最も近いがこれだったが、それは非常に私の状況に応答しない: Substract Flag From FontStyle (Toggling FontStyles) [C#]

そして、それを削除し、それを設定し、なくする方法を与えているこの:Change a font programmatically

私はのための簡単なコンストラクタをしないのですこれを行うフォント?それとも、もっと簡単なものが欠けていますか?

+3

FontStyle.Regularは動作しません。 – Steve

+1

LOL @スティーブありがとう。私がこれらのことを時々見逃していることを驚くほど。これをあなたの答えとしてください。 – ImGreg

+0

FontStyle(Toggling FontStyles)\ [C#\]からのSubstract Flagの重複の可能性あり(http://stackoverflow.com/questions/4198429/substract-flag-from-fontstyle-toggling-fontstyles-c) –

答えて

2

のfontStyle列挙型は5つの個別の値が含まれています。あなたの前のセットをリセット 1は、FontStyle.Regular

正規通常のテキストです。
太字太字。
イタリックイタリック体。
下線下線付きのテキスト。
ストライクアウト途中で線が引かれたテキスト。

それが0だから私は、これは少し古いですけど、私は正確に同じ問題に直面し、これを思い付いた他のすべてのフラグをリセット

+0

これは質問の例ですが、疑問ではありません。「FontStyle.Italic」などの別のスタイルが設定されている場合、ビットマスキング以外に、 'FontStyle.Regular'への完全な復帰なしにスタイルを削除する方法があります? – Jamie

2

はこれを試してみてください:

private void btn_buttonBolding_Click(object sender, EventArgs e) 
    { 
     var style = btn_buttonBolding.Font.Bold ? FontStyle.Regular : FontStyle.Bold; 
     btn_buttonBolding.Font = new Font(this.Font, style); 
    } 
+0

+1 Iトグルのコンセプトのように。 – ImGreg

9

だけでは、この値を設定された正規ビット単位の列挙です:

Font opFont = this.btn_buttonBolding.Font; 
if(value) 
{ 
    this.btn_buttonBolding.Font = new Font(opFont, opFont.Style | FontStyle.Bold); 
} 
else 
{ 
    this.btn_buttonBolding.Font = new Font(opFont, opFont.Style & ~FontStyle.Bold); 
} 

魔法はビット単位ではない「〜」にあります。 (MSDN KB article "~Operator"を参照してください)

+0

それは便利です、ありがとう。 – ImGreg

関連する問題

 関連する問題