2013-10-04 19 views
2

这是我的工作代码:如何从文本框中获取文本并将其转化为C#中可用的文件路径?

string outputpath = @"C:\today\abc.txt"; 
var outputdata = query.ToList(); 
File.AppendAllLines(outputpath, outputdata); 

现在,而不是在代码中定义“outputpath”,我想将其设置为一个文本框的内容。

string outputpath = textBox1.Text; 

这不会编译。我究竟做错了什么?

编辑:我得到的错误是“错误1,A字段初始不能引用非静态字段,方法或属性‘WindowsFormsApplication1.Form1.textBox1’

+3

你有什么错误? –

+3

“这不能编译”并没有给我们太多的信息。什么是错误?你在做什么?实际上是在你想要做这个的类中声明'textBox1'吗? –

+0

错误必须在其他地方。 textBox1.Text是正确的。 –

回答

1

貌似你试图initalize一个。基于非静态对象的值字段你不能这样做,因为对象不初始化过程中存在

这也是白搭。

public class Form 
{ 
    TextBox textBox1; 
    string outputPath = textbox1.Text; 
} 

这应该工作,虽然该值可能是一个空字符串:

public class Form 
{ 
    TextBox textBox1; 
    string outputPath; 

    public Form() 
    { 
     outputPath = textBox1.Text; 
    } 
} 

但是,您可能需要的是钩住按钮的OnClick事件或类似的东西,以将textBox1.Text值分配给outputpath。

+0

感谢Michael将2个例子与我自己的新手区别开来。这种差异对我来说很微妙,但对真正的程序员来说可能显而易见。 – phan

+0

@phan我自己几乎不是'真正的'程序员。这个关键是类中初始化的顺序。如果X还没有值,并且您尝试赋值Y = X,那么Y的值是多少? – Michael

相关问题