【问题标题】:How do I take the text from a textbox and make it into a usable file path in C#?如何从文本框中获取文本并将其转换为 C# 中的可用文件路径?
【发布时间】:2013-10-04 18:28:03
【问题描述】:

这是我的工作代码:

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

现在我不想在代码中定义“输出路径”,而是将其设置为等于文本框的内容。

string outputpath = textBox1.Text;

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

编辑:我得到的错误是“错误 1,字段初始化程序无法引用非静态字段、方法或属性 'WindowsFormsApplication1.Form1.textBox1'。

【问题讨论】:

  • 你遇到了什么错误?
  • “这不能编译”并没有给我们太多信息。有什么错误?你在哪里做这个? textBox1 实际上是在您尝试执行此操作的类中声明的吗?
  • 错误必须在其他地方。 textBox1.Text 是正确的。
  • @VaibhavDesai:如果没有声明 textBox1,如 Jon Skeet 指出的那样,或者它不是 TextBox 对象,则不会。
  • 解释query的类型是什么

标签: c#


【解决方案1】:

看起来您正在尝试根据非静态对象的值初始化字段。您不能这样做,因为在初始化期间该对象不存在。

这不好:

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。

【讨论】:

  • 感谢 Michael 向像我这样的新手阐明这两个示例之间的区别。这种差异对我来说很微妙,但对真正的程序员来说可能非常明显。
  • @phan 我自己几乎不是一个“真正的”程序员。关键是类内的初始化顺序。如果 X 还没有值,而你尝试分配 Y = X,那么 Y 的值是多少?
猜你喜欢
  • 1970-01-01
  • 2011-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-01
  • 1970-01-01
  • 2014-04-27
  • 1970-01-01
相关资源
最近更新 更多