如何从一个Click方法获取数组数据到另一个

时间:2013-12-13 03:20:49

标签: c# winforms methods scope

不要以为我可以更新编码,所以请原谅我要问的问题。

我正在编写一个程序,让用户输入所需数量的随机数,由Random via textBox生成(假设15 - >你得到15个随机数),范围从1到1000。

当按下按钮A时,这些随机数字将保存在Zahlenarray []( - >中,在文本框中输入数字的长度)并显示在label1.Text中。

然后有一个按钮B,点击后,应该通过bubblesort对Zahlenarray []中的Numbers进行排序,并在label2中显示它们。

我的问题是,现在第二个方法(按钮B_Click)没有来自按钮A_Click方法的Zahlenarray的内容。

我想通过参数通过ref传递这些数据,但摆弄public void(Object sender,EventArgs e)似乎让我遇到了大麻烦。

我可以在EventArgs e之后添加参数,或者我错过了另一种从“范围”获取数据的方式(希望这是正确的词)?

两种方法属于同一类。

按钮A的部分代码:

public void Button_Anzeigen_Click(Object sender, EventArgs e)
        {            
            label1.Text = "";            
            int[] Zahlenarray = new int[Int32.Parse(textBox1.Text)];

按钮B的所有内容:

private void Button_Sortieren_Click(object sender, EventArgs e)
{
    label2.Text = "";
    label3.Text = "";
    int Speicher;

    for (int n = Zahlenarray.Length; n > 0; n--)
    {
        for (int i = 0; i < n-1; i++)
        {


            if (Zahlenarray[i] > Zahlenarray[i + 1])
            {
                Speicher = Zahlenarray[i];
                Zahlenarray[i] = Zahlenarray[i + 1];
                Zahlenarray[i + 1] = Speicher;
                Speicher = 0;
            }
        }
    }


    foreach (int i in Zahlenarray)
    {
        label2.Text += i + "   ";

        if ((i % 9 == 0) && !(i == 0))
            label2.Text += "\n";
    }

}

1 个答案:

答案 0 :(得分:1)

将您的数组声明放在buttona单击处理程序之外,以便在按钮b处理程序中引用它。

int[] Zahlenarray;
public void Button_Anzeigen_Click(Object sender, EventArgs e)
    {            
        label1.Text = "";            
        Zahlenarray = new int[Int32.Parse(textBox1.Text)];
        ...
    }