|
分類:[VB.NET/VB2005 以降]
いつもお世話になっています。
TextboxのFontを毎回実行時に前回実行時の状態を保存しておいて、読み込んでみようと作り始めたのですが、 困ってしまいました。
・フォント名 ・サイズ ・スタイル
は各々にて設定することは出来ず、一気にやらなければダメとわかりました。
textbox.Font = New Font("MS UI Gothic", 20, FontStyle.Regular)
しかしスタイルは以下のように
・太字 ・斜体 ・アンダーライン ・取り消し線
があり、orで繋げないとダメだとわかりました。
ためしに、予めstringで文字列を作って設定しようとしたところエラーとなりました。
Dim f2 As string = "FontStyle.Bold Or FontStyle.Underline" textbox.Font = New Font ( "MS UI Gothic", 20, f2 ) ↓ Overload resolution failed because no accessible 'New' can be called without a narrowing conversion: (BC30519)
これがだめとなると 4x4=16パターンの組み合わせをifかcaseで作って設定しないとダメでしょうか???
ex. boldがtrue textbox.Font = New Font ( "MS UI Gothic", 20, FontStyle.Bold )
boldがtrueでUnderlineがtrue textbox.Font = New Font ( "MS UI Gothic", 20, FontStyle.Bold Or FontStyle.Underline )
・ ・ ・
そんなまさか。。。とおも思いました。なにか、良い方法はないのでしょうか?
実行終了時の設定取得では font.name,"MS ゴシック" font.size,"72"
font.style ,"15" font.strikeout,"True" font.underline,"True" font.italic ,"True" font.bold ,"True"
font,"[Font: Name=MS ゴシック, Size=72, Units=3, GdiCharSet=128, GdiVerticalFont=False]"
のようになりました。 font.style では「15」という値が帰ってしました。 これを第3引数に入れてみたのですが、エラーとなりました。
また、単に、textbox.FontをTostringすると "[Font: Name=MS ゴシック, Size=72, Units=3, GdiCharSet=128, GdiVerticalFont=False]" のようにとれたのですが、これを使って簡単に設定できませんでしょうか?
|