Эта функция динамически создает девять кнопок для использования в игре, которую я делаю. Вы можете видеть, какие атрибуты я даю кнопке.Ссылка на кнопку за пределами петли?
private void createbuttons()
{
int tot = 0;
int x = 100;
int y = 100;
while(tot < 9)
{
string buttonsname = (tot + "button").ToString();
Button creating = new Button();
creating.Name = buttonsname;
creating.Size = new Size(100, 100);
creating.Click += delegate
{
MessageBox.Show("You clicked me!");
};
creating.Text = buttonsname;
if(x > 300)
{
y += 100;
x = 100;
}
creating.Location = new Point(x, y);
Controls.Add(creating);
tot += 1;
x += 100;
}
}
Я хочу знать, как обращаться с этими кнопками в разных частях одной и той же формы. В частности, когда нажата кнопка «Начать игру», я хочу изменить текст для каждой кнопки на что-то другое.
private void button10_Click(object sender, EventArgs e)
{
//What would I write here to change the text?
}
Спасибо, я подумал, что, возможно, нужно добавить список :) – Robjames970
The список (фактически 'ControlCollection') уже существует. Нет необходимости поддерживать другую. – Dialecticus
@Dialecticus Удерживая кнопки и другие элементы управления в отдельных коллекциях вне коллекции 'Controls', вы сохраняете циклы CPU для больших форм и также можете улучшить читаемость вашего кода. – dasblinkenlight