将用户输入保存为c#windows窗体中的变量

时间:2013-07-13 02:37:49

标签: c# variables folderbrowserdialog

到目前为止,如果用户输入内容,我会存储在label属性中。我知道这不可能是正确的。如何根据用户输入更新变量,以便在需要使用的任何事件中使用?

这是我尝试过的很多事情之一。我甚至无法找出正确的搜索字词来解决我需要做的事情。

namespace Words
{
  public partial class formWords : Form
  {
    int x = 5;
    int y = 50;
    int buttonWidth = 120;
    int buttonHeight = 40;
    string fileList = "";
    string word = "";
    string wordFolderPath = @"C:\words\";// this is the variable I want to change with the dialog box below.

  private void selectWordFolderToolStripMenuItem_Click(object sender, EventArgs e)
    {
        FolderBrowserDialog folder = new FolderBrowserDialog();
        if (folder.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            string folderPath = folder.SelectedPath;
            formWords.wordFolderPath = folderPath;
        }
    }

2 个答案:

答案 0 :(得分:2)

只需更改formWords.wordFolderPath = folderPath;

即可

wordFolderPath = folderPath;

this.wordFolderPath = folderPath;

应解决您的问题

此外,错误列表中应该存在编译器错误,“非静态字段,方法或属性需要对象引用...”

如果您没有看到错误列表,请务必将其打开。

答案 1 :(得分:2)

wordFolderPath是您班级的变量公开(但在其外部是私有的)。这意味着类中的任何内容都可以自由地读/写值。

至于语法,您可以使用变量名称或使用this.

private void DoAThing()
{
    wordFolderPath = "asdf";
    this.wordFolderPath = "qwerty"; //these are the same
}

访问内部变量时,不能使用当前类的名称。 formWords是一种类型,而不是实例。

使用this的唯一好处是因为在方法中定义同名变量是合法的。使用此关键字可确保您正在讨论该班级的成员。