如何在另一个事件中访问在一个事件中创建的对象?

时间:2011-05-31 03:50:59

标签: c#

我在on事件中创建了一个对象,现在我想要另一个事件来访问它。我该怎么做?

我在Visual Studio 2010中这样做。

我有一个包含三个按钮事件的表单。第一个按钮创建一个对象。我想要第二个按钮来使用该对象。我该怎么做?

   public void buttonCreate_Click(object sender, EventArgs e)
    {
        int size;
        int sizeI;
        string inValue;

        inValue = textBoxSize.Text;
        size = int.Parse(inValue);
        inValue = comboBoxSizeI.Text;
        sizeI = int.Parse(inValue);

        Histrograph one = new Histrograph(size, sizeI);
    }

    public void buttonAddValue_Click(object sender, EventArgs e)
    {
        int dataV = 0;
        string inValue;
        inValue = textBoxDataV.Text;
        dataV = int.Parse(inValue);
        one.AddData(dataV); //using the object
    }

2 个答案:

答案 0 :(得分:4)

如果我正确解析您的问题,您希望使用onebuttonCreate_Click中创建的buttonAddValue_Click变量。

要完成此任务,您需要将one作为类变量,如:

 class MyForm : Form
 {
    Histogram one;

public void buttonCreate_Click(object sender, EventArgs e)
{
    int size;
    int sizeI;
    string inValue;

    inValue = textBoxSize.Text;
    size = int.Parse(inValue);
    inValue = comboBoxSizeI.Text;
    sizeI = int.Parse(inValue);

    one = new Histrograph(size, sizeI);  // NOTE THE CHANGE FROM YOUR CODE
}

public void buttonAddValue_Click(object sender, EventArgs e)
{
    int dataV = 0;
    string inValue;
    inValue = textBoxDataV.Text;
    dataV = int.Parse(inValue);
    one.AddData(dataV); //using the object
}

答案 1 :(得分:3)

您可以使用私有变量而不是局部变量

来完成此操作
//Declare a private variable
private object _myObject

public void Event1Handler(object sender, EventArgs e)
{
     //Create the object
     _myObject = CreateTheObject();
}


public void Event2Handler(object sender, EventArgs e)
{
    //Use the object
    UseTheObject(_myObject);
}