2009-05-15 25 views
0

C#のFontDialogクラスには、ユーザーがスクリプト(西洋語、ヘブライ語、アラビア語、トルコ語など)を選択できる「AllowScriptChange」というプロパティがあります。有効にすると、ドロップダウンボックスには、選択されているフォントに応じて、これらのオプションがすべて使用可能になります。"byte gdicharset"をスクリプト/言語の名前に変換するにはどうすればよいですか?

ダイアログが成功した場合、選択したフォントにはGdiCharSetの値が0-255に設定されています。 177はヘブライ語、161はギリシャ語などです。値を文字列に変換する関数はありますか?私は自分でswitch文を書くことができますが、私は正しい道をしたいと思います。 http://msdn.microsoft.com/en-us/library/cc194829.aspx

編集::私はコードページの名前を取得することは簡単なはずだと思うので、あまりにも、仕事とコードページへのCharSetから変換する機能

これは部分的なリストです。

答えて

4

スイッチを使用したくない場合は、列挙型の使い方はどうですか?

public enum CharSet : byte 
{ 
     ANSI_CHARSET = 0, 
     DEFAULT_CHARSET = 1, 
     SYMBOL_CHARSET = 2, 
     SHIFTJIS_CHARSET = 128, 
     HANGEUL_CHARSET = 129, 
     HANGUL_CHARSET = 129, 
     GB2312_CHARSET = 134, 
     CHINESEBIG5_CHARSET = 136, 
     OEM_CHARSET = 255, 
     JOHAB_CHARSET = 130, 
     HEBREW_CHARSET = 177, 
     ARABIC_CHARSET = 178, 
     GREEK_CHARSET = 161, 
     TURKISH_CHARSET = 162, 
     VIETNAMESE_CHARSET = 163, 
     THAI_CHARSET = 222, 
     EASTEUROPE_CHARSET = 238, 
     RUSSIAN_CHARSET = 204 
    } 

そして、あなたはあなたがそうのようなあなたのコードでそれを使用することができます.NET 3.5

public static class GdiCharHelper 
{ 
    public static string ToGdiName(this byte GdiCharSet) 
    { 
      return Enum.GetName(typeof(CharSet), GdiCharSet); 
    } 
} 

を使用している場合、あなたが拡張メソッドを設定することができます:

string name = Font.GdiCharSet.ToGdiName(); 

EDITような何か:これについて考えると、Extensionメソッドの戻り値をenumに変更する必要があります。

return (CharSet)GdiCharSet; 

このようにして比較することもできます。

If (Font.GdiCharSet.ToCharSet() == CharSet.ANSI_CHARSET) {...} 
関連する問題