我目前正在嘗試將特定操作添加到標籤數組,但變量只保留在{}
之間。數組標籤事件動作
_arr[i].Click += (a, b) => {
z++;
numarfinal = Convert.ToString(z);
MessageBox.Show(Convert.ToString(numarfinal));
};
外{}
既不可變z
也不numarfinal
已經改變,但MessageBox.Show
報告,它們的參數已經改變。
這裏是全功能:
Label[] _arr = new Label[20];
Label[] _dinamic = new Label[20];
private static Random _r = new Random();
string numarfinal ;
private void button1_Click(object sender, EventArgs e)
{
int z=0;
int limita = Convert.ToInt16(textBox1.Text);
limita = int.Parse(textBox1.Text);
if (limita > 20)
textBox1.Text = "Do sth";
int randomnumber = _r.Next(20);
for(int i=0;i<limita;i++)
{
do
{
randomnumber = _r.Next(20);
} while (randomnumber==0);
_arr[i] = new Label();
_arr[i].Click += (a, b) =>
{
z++;
numarfinal= Convert.ToString(z);
MessageBox.Show(Convert.ToString(numarfinal));
};
_arr[i ].Text = Convert.ToString(randomnumber);
_arr[i ].Size = new Size(50,50);
_arr[i ].Location = new Point(55*i,60);
testlabel.Text = Convert.ToString(numarfinal); // the label value remain nothing (numarfinal's initial value)
this.Controls.Add(_arr[i]);
}
需要更多的代碼,其中的Z和numarfinal申報? – Fredou 2013-04-27 19:29:43
所以你有全局變量'z'和'numarfinal',你在處理程序中改變它們,你可以看到改變,然後變量回滾到它們以前的值? – GSerg 2013-04-27 19:30:18
在private private button1_Click(object sender,EventArgs e)中''z'是int類型,'numarfinal'是一個字符串。我之前提供的代碼也在同一個函數中。 – user2194683 2013-04-27 19:31:59