[IndexProperty]
font=[Font: Name=宋体, Size=9, Units=3, GdiCharSet=1, GdiVerticalFont=False] //ini文件*****************************************************************************Font FONT = (Font)converter.ConvertFromString(ii.IniReadValue("IndexProperty", "font"));IniReadValue函数用来读ini文件的font。*******************************************系统报错:未处理的异常:  System.ArgumentException: “Size=9, Units=3, GdiCharSet=1, GdiVer
ticalFont=False]”的值对于“units”无效。

解决方案 »

  1.   

    老老实实转一遍!-_-!!!
    string s = "[Font: Name=宋体, Size=9, Units=3, GdiCharSet=1, GdiVerticalFont=False]";
    System.Text.RegularExpressions.Match match =
        System.Text.RegularExpressions.Regex.Match(s,
            @"^\[Font\: Name\=(?<name>[^,]+), Size=(?<size>\d+), Units=(?<units>\d+), " +
            @"GdiCharSet=(?<charSet>\d+), GdiVerticalFont=(?<verticalFont>\w+)\]");
    //Console.WriteLine(match.Result("${name}")); //测试代码
    //Console.WriteLine(match.Result("${size}"));
    //Console.WriteLine(match.Result("${units}"));
    //Console.WriteLine(match.Result("${charSet}"));
    //Console.WriteLine(match.Result("${verticalFont}"));
    Font FONT = new Font(match.Result("${name}"), 
        float.Parse(match.Result("${size}")),  FontStyle.Regular,
        (GraphicsUnit)int.Parse(match.Result("${units}")),
        byte.Parse(match.Result("${charSet}")),
        bool.Parse(match.Result("${verticalFont}")));