我正在使用Visual Studio 2010 for C#,在构建我想要构建的应用程序之前,我正在搞乱一些类和对象。
我构建的表单有一个form1_load事件,它创建一个我想在整个表单中操作的对象的实例。
当我单击一个按钮时,我希望能够调用我的对象的一个方法来执行一些语句。我无法让它工作,但它告诉我该对象在当前上下文中不存在,如何将此对象传递给click事件以便我可以操作它?
public void Form1_Load(object sender, EventArgs e)
{
MyPerson bozo = new MyPerson("bozo",48,23);
textBox2.Text = bozo.name;
}
public void button1_Click(object sender, EventArgs e)
{
bozo.myMethod(); // c# is saying that this object doesn't exist in the current context.
}
我理解类结构和对象,但我常常在不同的地方访问它们。
答案 0 :(得分:4)
您的对象是Form_Load
中的局部变量,因此它仅存在于此处。您可以在表单中将其设为field或property。例如:
private MyPerson bozo { get; set; }
public void Form1_Load(object sender, EventArgs e)
{
bozo = new MyPerson("bozo",48,23);
textBox2.Text = bozo.name;
}
public void button1_Click(object sender, EventArgs e)
{
bozo.myMethod(); // now you can access it since it "lives" in the whole form
}