我使用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文本呢?
希望有人可以帮助我,因为我真的需要这样做。提前谢谢。
答案 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");
}
}
除非您有真正令人信服的理由使用隐藏文本框。