在单击事件中使用对象c#

时间:2013-07-14 21:14:33

标签: c# oop event-handling

我正在使用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.
    }

我理解类结构和对象,但我常常在不同的地方访问它们。

1 个答案:

答案 0 :(得分:4)

您的对象是Form_Load中的局部变量,因此它仅存在于此处。您可以在表单中将其设为fieldproperty。例如:

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
}