C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: フォントの設定について


(過去ログ 105 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■62249 / inTopicNo.1)  フォントの設定について
  
□投稿者/ やんまー (111回)-(2011/09/29(Thu) 16:46:02)

分類:[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]"
のようにとれたのですが、これを使って簡単に設定できませんでしょうか?


引用返信 編集キー/
■62251 / inTopicNo.2)  Re[1]: フォントの設定について
□投稿者/ shu (1023回)-(2011/09/29(Thu) 16:55:16)
No62249 (やんまー さん) に返信

> のようになりました。
> font.style では「15」という値が帰ってしました。
> これを第3引数に入れてみたのですが、エラーとなりました。

CType(15, FontStyle)
引用返信 編集キー/
■62252 / inTopicNo.3)  Re[2]: フォントの設定について
□投稿者/ Hongliang (809回)-(2011/09/29(Thu) 17:00:52)
System.ComponentModel.TypeDescriptor クラスの GetConverter メソッドを使って TypeConverter を手に入れれば、
ConvertToString / ConvertFromString で Font と String の相互変換が可能ですね。
引用返信 編集キー/
■62255 / inTopicNo.4)  Re[1]: フォントの設定について
□投稿者/ 魔界の仮面弁士 (2370回)-(2011/09/29(Thu) 18:48:22)
No62249 (やんまー さん) に返信
> TextboxのFontを毎回実行時に前回実行時の状態を保存しておいて、読み込んでみようと作り始めたのですが、
> 困ってしまいました。

FontConverter クラスの ConvertToInvariantString / ConvertFromInvariantString メソッドで。
引用返信 編集キー/
■62257 / inTopicNo.5)  Re[2]: フォントの設定について
□投稿者/ やんまー (113回)-(2011/09/29(Thu) 19:20:27)
shu さん
> CType(15, FontStyle)


おおおお!

うまくいきました!

そういうことだったんですね・・・
引用返信 編集キー/
■62259 / inTopicNo.6)  Re[3]: フォントの設定について
□投稿者/ やんまー (114回)-(2011/09/29(Thu) 20:34:43)
2011/09/29(Thu) 23:25:36 編集(投稿者)

No62252 (Hongliang さん) に返信
> System.ComponentModel.TypeDescriptor クラスの GetConverter メソッドを使って TypeConverter を手に入れれば、
> ConvertToString / ConvertFromString で Font と String の相互変換が可能ですね。



取得
Dim font as string = system.ComponentModel.TypeDescriptor.GetConverter( gettype(Font) ).ConvertToString(textbox.Font) )

セット
textbox.Font= CType(System.ComponentModel.TypeDescriptor.GetConverter(GetType(Font)).ConvertFromString( font ) , FONT)



こんなかんじでうまくいきました!

引用返信 編集キー/
■62293 / inTopicNo.7)  Re[4]: フォントの設定について
□投稿者/ ぴよ (4回)-(2011/10/01(Sat) 15:48:07)
FontStyleは列挙体です。
列挙体はVB等を使う上では基本になりますので、列挙体についてもう少し勉強することをお勧めします。
あと、ビット計算も理解できれば、FontStyleの値から太字・斜体・アンダーライン・取り消し線のどれが設定されているかを知ることもできます。
引用返信 編集キー/
■62622 / inTopicNo.8)  Re[5]: フォントの設定について
□投稿者/ やんまー (119回)-(2011/10/21(Fri) 19:35:08)
No62293 (ぴよ さん) に返信
> FontStyleは列挙体です。
> 列挙体はVB等を使う上では基本になりますので、列挙体についてもう少し勉強することをお勧めします。
> あと、ビット計算も理解できれば、FontStyleの値から太字・斜体・アンダーライン・取り消し線のどれが設定されているかを知ることもできます。

ありがとうございます。
列挙体・・・勉強します。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -