到目前为止,如果用户输入内容,我会存储在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;
}
}
答案 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
的唯一好处是因为在方法中定义同名变量是合法的。使用此关键字可确保您正在讨论该班级的成员。