我用dialogFont设置了一个窗体中的文本字体,如何保存我当前的设置,使得我关闭程序后再次打开还是上次设置的字体样式?我尝试用注册表的方式保存,可是保存的是字体样式的文本形式如:([Font: Name=宋体, Size=9, Units=3, GdiCharSet=134, GdiVerticalFont=False]),再次打开程序的时候从文本中读出样式似乎很麻烦,而且我不会。有没有其它的方法。如果只能保存为文本的形式,有没有哪位高手帮我写一段代码把字体从文本中读出来。谢谢

解决方案 »

  1.   

    覺得麻煩就用DataSet導入導出XML文件就可以了
      

  2.   

    注册表也可以,文本文件可以用.ini类型的文件,那样有现在的函数读取了,基本上是 变量=值
    这样的类型,你说的文本形式其实可以分成多部分吧?一部分一个值就可以,当然,全在一起也可以
      

  3.   

    GetProfileString
    网上,MSDN,CSDN上搜吧,一大把,自己抄吧,我不喜欢写这类代码 , 稍瑞
      

  4.   

    你可以弄个xml文件
    <?xml version="1.0" encoding="utf-8" ?> 
    <AppData>
    <FontInfo>
    <FormalName Name="FontName" Value=""/>
    <FormalName Name="FontStyle" Value=""/>
                      ............
    </FontInfo>
    </AppData>你可以根据你的需要创建N多节点读取:
    XmlDocument doc = new Document();
    doc.Load(filePath);//filePath就是你这个文件的路径
    string fontName = (doc.SelectSingleNode("AppData/FontInfo/FormalName[@Name='FontName']") as XmlElement).GetAttribute("Value");
    string fontStyle = (doc.SelectSingleNode("AppData/FontInfo/FormalName[@Name='FontStyle']") as XmlElement).GetAttribute("Value");写入文件也比较简单
    XmlDocument doc = new Document();
    if (File.Exist(filePath))
    {
        doc.Load(filePath);
    }
    else
    {
        doc = CreatDoc(filePath);
    }XmlElement FontName = (XmlElement)doc.SelectSingleNode("AppData/FontInfo/FormalName[@Name='FontName']");
    FontName.SetAttribute("Name","");
    FontName.SetAttribute("Value","");
    XmlElement FontStyle = (XmlElement)doc.SelectSingleNode("AppData/FontInfo/FormalName[@Name='FontStyle']");
    FontStyle.SetAttribute("Name","");
    FontStyle.SetAttribute("Value","");
    doc.Save(filePath);
    private XmlDocument CreatDoc(stirng path)
    {
        XmlDocument doc = new XmlDocument();
        XmlDeclaration d = doc.CreateXmlDeclaration("1.0","utf-8",null);
        doc.AppendChild(d);
        XmlNode root = doc.CreateElement("AppData");
        XmlNode FontInfo = doc.CreateElement("FontInfo");
        XmlElement FontName  = doc.CreateElement("FormalName");
        FontName.SetAttribute("Name","FontName");
        FontName.SetAttribute("Value","");
        XmlElement FontStyle  = doc.CreateElement("FormalName");
        FontStyle.SetAttribute("Name","FontStyle");
        FontStyle.SetAttribute("Value","");
        FontInfo.AppendChild(FontName);
        FontInfo.AppendChild(FontStyle);
        root.AppendChild(FontInfo);
        doc.AppendChild(root);
        doc.Save(path);
    }
      

  5.   

    O_O还是注册表简单点,只要谁告诉我怎么把下面这段话转化为相应的字体就可以了
    比如赋值:TextBox1.Text=(里面是下面这段话所代表的字体,要怎么获得这个字体?)[Font: Name=宋体, Size=9, Units=3, GdiCharSet=134, GdiVerticalFont=False]
      

  6.   

    =new font("宋体",9)只有这样才行