通常、フォントに太字やイタリック体を指定する場合、
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で質問しましょう!
似たような質問が見つかりました
- HTML・CSS CSSがなぜかfont-sizeだけ効かない...記述がまちがっているんでしょうか 5 2022/04/09 17:52
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- C言語・C++・C# クラスのメンバ変数を基準に並べ替えをしたい 5 2022/12/25 17:40
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- Windows 10 IT初心者です! powershellで以下のようなエラーが出ました オブジェクト参照がオブジェクト 1 2023/05/17 11:30
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- HTML・CSS Web font 会社のホームページを作成についてですが、webフォントを使用することを検討しており 4 2022/11/04 10:36
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- HTML・CSS ワードプレスで太字が反映されません PC(MacBook)の画面上には、太字は反映されるのに、スマホ 3 2022/12/18 18:56
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelのセルの色指定をVBAから...
-
ExcelのINDEXとMATCH関数でスピ...
-
【VBA】配列に数式を仕込む方法...
-
VBA listBoxについて
-
VBAでの100万行以上のデータの...
-
SUMPRODUCT関数を用いた最小値
-
エクセル 条件を指定した標準...
-
[エクセル]連続する指定範囲か...
-
配列の受け渡しについて
-
[VBA]改行入りのセルの値を配列...
-
読み込みで一行おきに配列に格納
-
ノーツのデータをVBScriptで取...
-
DataSetから、DataTableを取得...
-
Excel オートフィルタのリスト...
-
VBS 複数ファイル複数行を配列...
-
エクセルVBAで変数をセルに一行...
-
array関数で格納した配列の型を...
-
vba:一覧表から自動転記をしたい
-
.NET - 配列変数を省略可能の引...
-
スプレットシートのGetTextにつ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelのセルの色指定をVBAから...
-
ExcelのINDEXとMATCH関数でスピ...
-
array関数で格納した配列の型を...
-
[エクセル]連続する指定範囲か...
-
表にフィルターをかけ、絞った...
-
VBA listBoxについて
-
エクセルで、絶対値の平均を算...
-
配列がとびとびである場合の書き方
-
DataSetから、DataTableを取得...
-
[VBA]改行入りのセルの値を配列...
-
VBA 配列に格納した値の平均の...
-
配列のSession格納、及び取得方...
-
【VBA】ユーザーフォーム リス...
-
エクセルでエラーを無視して一...
-
SUMPRODUCT関数を用いた最小値
-
Excel VBA 配列の分割について
-
Excelのオートフィルタで抽出し...
-
VB6.0 ファイルの一括読込み
-
Excel オートフィルタのリスト...
-
VBAで指定期間の範囲を抽出し、...
おすすめ情報