![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
通常、フォントに太字やイタリック体を指定する場合、
new Font("Arial", 10, FontStyle.Bold|FontStyle.Italic)
のように「|」で区切った形で指定すると有りますが、
FontStyleの部分を変数を使って指定したいと考えています。
FontStyle styles = new FontStyle();
styles.Add(FontStyle.Bold); // 実際にはできません
styles.Add(FontStyle.Italic);
new Font("Arial", 10, styles);
スタイルの情報は配列「bold, italic, underline, strikeout」のように保存されていて、
配列にboldが含まれていれば「FontStyle.Bold」を加えるといった流れが目的です。
Listを変換できないものかと試したりもしてみましたが例外が発生してしまいます。
List<Enum> styleList = new List<Enum>();
styleList.Add(FontStyle.Bold);
styleList.Add(FontStyle.Italic);
FontStyle styles = (FontStyle)Enum.ToObject(typeof(FontStyle), styleList);
Font font = new Font("Arial", 12, styles);
どのように解決すればいいのでしょうか?
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
> 「|」で区切った形で指定する
"|"はOR演算子ですので、
「"|"で区切る」というよりは「各フラグのビットごとのORをとる」という解釈が望ましいです。
・Listを使わない例
FontStyle styles = FontStyle.Regular;
styles |= FontStyle.Bold;
styles |= FontStyle.Italic;
new Font("Arial", 10, styles);
・Listを使う例
List<FontStyle> styleList = new List<FontStyle>();
styleList.Add(FontStyle.Bold);
styleList.Add(FontStyle.Italic);
FontStyle styles = FontStyle.Regular;
foreach(FontStyle style in styleList){
styles |= style;
}
Font font = new Font("Arial", 12, styles);
FontStyleは複数のフラグを持っているものと誤解していたのですが、実際には論理和の結果が代入されていたんですね。
教えて頂いたサンプル非常に役に立ちました。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelのINDEXとMATCH関数でスピ...
-
表にフィルターをかけ、絞った...
-
エクセルで、絶対値の平均を算...
-
VBA 配列に格納した値の平均の...
-
Excelのセルの色指定をVBAから...
-
VB6.0 ファイルの一括読込み
-
VBAのコンボボックスについて
-
[エクセル]連続する指定範囲か...
-
[VBA]改行入りのセルの値を配列...
-
【VBA】配列に数式を仕込む方法...
-
Excel VBA 配列の分割について
-
INDEX(D:D,L3)の意味は?
-
EXCEL VBA 2次元配列に格納さ...
-
【VBS】innerTEXTで取得した内...
-
Sessionに格納した二次元配列を...
-
Excelで配列数式を使わずにとび...
-
【VBA】ユーザーフォーム リス...
-
Datatableへの代入
-
VBAで指定期間の範囲を抽出し、...
-
エクセルの行の削除を配列で高...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelのセルの色指定をVBAから...
-
表にフィルターをかけ、絞った...
-
ExcelのINDEXとMATCH関数でスピ...
-
array関数で格納した配列の型を...
-
エクセルで、絶対値の平均を算...
-
[エクセル]連続する指定範囲か...
-
配列がとびとびである場合の書き方
-
DataSetから、DataTableを取得...
-
[VBA]改行入りのセルの値を配列...
-
VBA 配列に格納した値の平均の...
-
Split関数でLong配列に格納する...
-
iniファイルのキーと値を取得す...
-
エクセルでエラーを無視して一...
-
SUMPRODUCT関数を用いた最小値
-
VB6.0 ファイルの一括読込み
-
Excel オートフィルタのリスト...
-
INDEX(D:D,L3)の意味は?
-
Excelのオートフィルタで抽出し...
-
Dictionaryを使い4つの条件の一...
-
配列のSession格納、及び取得方...
おすすめ情報