2014-07-27 4 views
-3

Я пытаюсь сделать случайную кнопку, изменяя ее текст на основе случайного числа. Я пробовал следующий код:изменение случайного текста кнопки C#

if (Button(random int 1 to 9)).Text != "X") 
{ 
    MessageBox.Show("test worked"); 
} 

Любой вход, как я мог бы это сделать, был бы очень признателен.

ответ

1

Вы необходимо создать массив или список Button s и добавить к нему каждую кнопку и выбрать один случайный вариант или назвать каждую кнопку ButtonX, где X - номер. Затем вы можете использовать Find(), чтобы выбрать кнопку по ее названию.

Пример:

Random random = new Random(); 

if ((this.Controls.Find("Button" + random.Next(1, 10).ToString()) 
    .First() as Button).Text != "X") 
{ 
    MessageBox.Show("test worked"); 
} 

Убедитесь, что вы создаете экземпляр Random вне метода, если оно вызывается несколько раз, так как результат не изменится.

+1

@ user266929 Это на самом деле более чистый метод поиска элементов управления на C#. Я бы рекомендовал использовать это. –

+0

Я использую это решение сейчас, поскольку другое предложение вызовет ошибку stackoverflow. – user266929

0

Я думаю, что вы ищете что-то вроде этого

var rnd = new Random(); 

if(this.Controls["Button" + rnd.Next(1,10)].Text != "X") 
{ 
    MessageBox.Show("test worked"); 
} 

Ofcourse Я предполагаю, что это WinForms и у вас есть кнопка, по крайней мере 9 в вашем Form имени Button1 в Button9 ...

+0

Спасибо, это сработало. – user266929