【发布时间】:2011-08-15 12:06:30
【问题描述】:
我一次又一次地遇到同样的问题。我需要在按钮事件、双击或任何事情之后使用用户输入的值。当我与设计器一起做时,它会自动将 txt 控件及其值传递给整个程序,我可以在任何地方使用它。但以编程方式我无法解决它。 这是一个小例子:
private void Form1_Load(object sender, EventArgs e)
{
string blabla = "anything";
Button btn = new Button();
btn.Location = new Point(10, 40);
btn.Text = "Click me";
btn.Click += new EventHandler(btn_Click);
this.Controls.Add(btn);
}
void btn_Click(object sender, EventArgs e)
{
MessageBox.Show(blabla);
}
这不起作用,所以我添加了一个“公共”并且脚本如下:
public string blabla;
private void Form1_Load(object sender, EventArgs e)
{
blabla = "anything";
Button btn = new Button();
btn.Location = new Point(10, 40);
btn.Text = "Click me";
btn.Click += new EventHandler(btn_Click);
this.Controls.Add(btn);
}
void btn_Click(object sender, EventArgs e)
{
MessageBox.Show(blabla);
}
因此我可以将变量与更改后的值一起使用。这也适用于控件。 这可行,但这会在更大的应用程序中产生数千个公共变量。如何通过失去这些公众来提高可读性?有没有办法使用“参考”?我在自动“提取方法”上看到了它,我只是不知道,如何将它与事件一起使用。
也许我在这方面走错了路,如果有捷径或其他解决方案,请帮助。
【问题讨论】: