2014-10-24 4 views
0

У меня есть 10 строк, все названные q1, q2, q3 и т.д.Велоспорт через несколько строк C#

Мой вопрос, на нажатие кнопки, как сделать их цикл и отображение в кнопке?

Текущий код:

private void nButton_Click(object sender, EventArgs e) 
    { 
     for (int g = 0; g <= 10; g++) 
     { 
      rBox.Text = q(g); 
     } 
    } 

Очевидно, д (г) не цикл надлежащим образом, поэтому я пришел к вам, оракулы кода, как бы я это сделать?

** С другой стороны, если бы я хотел, чтобы удалить цикл, и вместо того, чтобы просто хотите увеличить г на единицу каждый раз, когда до 10, я предполагаю, что структура будет напоминать что-то вроде следующего:

private void nButton_Click(object sender, EventArgs e) 
    { 
     g++ 
      rBox.Text = q(g);  
    } 

Однако вопрос остается нерешенным, как бы я прошел через эти строки?

EDIT: Я обнаружил эти аккуратные вещи, называемые списки, так что я просто создал новый список с

 List<string> questionNumber = new List<string>(); 

Затем добавьте строку

questionNumber.Add(q1); 

Как, наконец, показать его через текстовое поле с простым приращением

private void nButton_Click(object sender, EventArgs e) 
    { 
     g++; 

      rBox.Text = questionNumber[g]; 

    } 
+0

он должен быть q [g] не в круглых скобках, если вы используете массив или список для хранения ваших строк. если q не является списком, он должен быть. –

+0

Что такое q? Это список или метод? –

+2

У вас есть отдельные переменные с именем 'q1',' q2' и т. Д.? Если вы это сделаете, невозможно создать цикл и пропустить их. Вам нужно будет использовать массив, список или любой другой перечислимый набор. – entropic

ответ

3

Самый простой способ - положить их в массив и i terate по массиву каждый раз, когда вы хотите работать на вашем strings.For Например:

var values = new [] { q1, q2, q3, ... }; 

for (int g = 0; g < 10; g++) 
{ 
    rBox.Text += values[g]; 
} 

Если ваше намерение было показать одну строку за один раз, на каждый клик вы можете сделать это, создав переменную счетчика вне щелчку событие и увеличить его за клик и просто fecth строку в этом индексе:

int index = 0; 
private void nButton_Click(object sender, EventArgs e) 
{ 
    if(index != values.Length) 
    { 
     rBox.Text = values[index]; 
     index++; 
    }  
} 

вы должны объявить values поле или свойство вашего класса, и инициализировать его с strings.In то, что вы можете полностью удалить переменные и просто используйте массив или список для хранения ваших значений.

+0

Это не сработает, даже если он обращается к тому, что означает 'q (g)'. Цикл необходимо поддерживать за пределами щелчка кнопки или обрабатывать по-разному для анимации. – user2864740

+0

Это даст значения от q1 до qn, конкатенированные. Это то, о чем он просил? –

+0

Это просто пример, который можно легко достичь, сделав массив полем или свойством. –

Смежные вопросы