顶好的小窝

闲时研究些小程序,编编小软件,写点小心得,兴许对你有用,欢迎来坐坐。

导航

用文本记录字符字符样式C# FontStyle

FontStyle属于枚举类型,如果用文本来记录,可以调用其ToString()方法,结果类似“Bold, Italic, Underline”。

但如何把这个字符串转换回FontStyle呢?其实这就是字符类型转换成枚举类型的问题。

我发现了两个方法,与大家分享。

方法一:

///对于枚举类型FontStyle的从字符到枚举转换的赋值操作  方法一  EnumConverter.ConvertFrom
string myS="Bold,Italic,Underline";
System.ComponentModel.EnumConverter myC
=new EnumConverter(typeof(System.Drawing.FontStyle)) ;  //用FontStyle类型创建EnumConverter对象,注意typeof 转换为System.Type对象
System.Drawing.FontStyle 
myFS=(System.Drawing.FontStyle)myC.ConvertFromString(myS); // 转换

public override object ConvertFrom(
   ITypeDescriptorContext context,  //类型
   CultureInfo culture,
   object value
);

将指定文本转换为对象。
public object ConvertFromString(string);
使用指定的上下文将给定的文本转换为对象。
public object ConvertFromString(ITypeDescriptorContext, string);
使用指定的上下文和区域性信息将给定的文本转换为对象。
public object ConvertFromString(ITypeDescriptorContext, CultureInfo, string);

方法二:

 

string myS="Bold,Underline";
System.Drawing.FontStyle myFS
=(System.Drawing.FontStyle)Enum.Parse(typeof(System.Drawing.FontStyle),myS,false);

将一个或多个枚举常数的名称或数字值的字符串表示转换成等效的枚举对象。
public static object Parse(Type, string);

将一个或多个枚举常数的名称或数字值的字符串表示转换成等效的枚举对象。一个参数指定该操作是否区分大小写。

public static object Parse(Type, string, bool);  bool表示是否区分大小写

 

posted on 2006-05-11 21:08  顶好  阅读(1702)  评论(4编辑  收藏  举报