从读取.txt文件

时间:2016-01-01 22:10:30

标签: c# string image file background

我正在尝试设置我的表单,以便从.txt文件中列出的路径加载BackgroundImage

文本文件的内容如下所示:

System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDoc‌​uments), "Application Name", "Skins", "Background.png")

当表单加载时,我运行以下代码:

//LOAD FORM

     string BackgroundSkinsPath = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDoc‌​uments), "Application Name", "Skins", "Skin.cfg");
     this.BackgroundImage = Image.FromFile(System.IO.File.ReadAllText(BackgroundSkinsPath));

用户点击与不同背景图片相关的按钮可以更改该文本文件的内容:

//CHANGE BG IMAGE

    private void ChangeBGButton_Click(object sender, EventArgs e)
    {  
     string BackgroundSkinsPath = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDoc‌​uments), "Application Name", "Skins", "Skin.cfg");
     System.IO.File.WriteAllText(BackgroundSkinsPath, "System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDoc‌​uments), "Application Name", "Skins", "Background2.png")");
     this.BackgroundImage = Image.FromFile(System.IO.File.ReadAllText(BackgroundSkinsPath));
    }

我想将背景图像位置写入文件的原因是,下次用户加载应用程序时,它将具有他们选择的背景图像,这是我能想到的唯一方式这样做。

问题是,我写的代码不起作用,我不知道如何解决它。

我希望用户能够从“我的文档”文件夹中的文件夹(通过按钮或类似文件)为应用程序选择背景图像,并让应用程序记住下次启动时他们选择的图像申请。

1 个答案:

答案 0 :(得分:1)

您正在cfg文件中编写C#表达式,而不是具有背景图像有效路径的文字字符串。

using System.IO;

private void ChangeBGButton_Click(object sender, EventArgs e)
{  
    string BackgroundSkinsPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDoc‌​uments), "Application Name", "Skins", "Skin.cfg");
    string currentBackgroundImage = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDoc‌​uments), "Application Name", "Skins", "Background2.png");
    File.WriteAllText(BackgroundSkinsPath, currentBackgroundImage );
    this.BackgroundImage = Image.FromFile(File.ReadAllText(currentBackgroundImage));
}

现在在你的LOAD方法中你可以使用

string BackgroundSkinsPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDoc‌​uments), "Application Name", "Skins", "Skin.cfg");
this.BackgroundImage = Image.FromFile(File.ReadAllText(BackgroundSkinsPath));