1

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

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

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;
        }
    }
4

2 回答 2

2

只是改变formWords.wordFolderPath = folderPath;

wordFolderPath = folderPath;

或者this.wordFolderPath = folderPath;

应该解决你的问题

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

如果您没有显示错误列表,则绝对应该将其打开。

于 2013-07-13T02:43:41.063 回答
2

wordFolderPath是对您的班级公开的变量(但在班级之外是私有的)。这意味着你的类中的任何东西都可以自由地读/写这个值。

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

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

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

using 的唯一优点this是在方法中定义同名变量是合法的。使用此关键字可确保您谈论的是类的成员。

于 2013-07-13T02:44:34.597 回答