TextBox,Url&类

时间:2012-03-08 06:32:23

标签: c# file textbox uri config

我使用This创建一个Config文件生成器,在其他C#Form项目中,我添加了Config文件生成器项目的ini类,创建了2个不可见的textboxes并使用了Config生成器项目的ReadValue以读取之前由Config文件gen创建的URL;这个项目使用Uri下载文件,我希望Uri成为不可见的文本框文本(这是配置文件中的URL)但是当我这样做时

IniFile ini = new IniFile("C:\\Config.ini");
TextBox1.Text= ini.IniReadValue("Config","Patch URL");

写Uri(private Uri PatchLocation = new Uri(TextBox1.Text);) 说“字段初始值设定项不能引用非静态字段,方法或属性'Downloader.Form1.TextBox1'”。 我需要做些什么才能使Uri成为TextBox文本呢? 希望有人可以帮助我,因为我真的需要这样做。提前谢谢。

2 个答案:

答案 0 :(得分:1)

您是否为IniFile类添加了必需的命名空间?

using Ini;

这条线看起来不对new Uri("TextBox1.Text")。更改为new Uri(TextBox1.Text)

答案 1 :(得分:1)

而不是private Uri PatchLocation = new Uri(TextBox1.Text);尝试

private Uri PatchLocation
{
    get
    {
        return new Uri(TextBox1.Text);
    }
}

基本上,你目前使用的代码是“当我初始化这个Form1对象时,将PatchLocation设置为我从Textbox1得到的东西”,这不是你想要的 - 并且编译器不会让你这样做。< / p>

我给出的代码是一个属性,这意味着在您尝试阅读 PatchLocation之前,它不会读取Textbox1 的内容。每当您尝试阅读PathLocation时,它都会从TextBox1.Text中解析出值。如果该值在当时不是有效URI,则会抛出异常。

修改:实际上,在完全阅读了您的问题后,您最好至少删除隐藏的文本框并使用

private Uri PatchLocation
{
    get
    {
        IniFile ini = new IniFile("C:\\Config.ini");
        return ini.IniReadValue("Config","Patch URL");
    }
}

除非您有真正令人信服的理由使用隐藏文本框。