У меня есть программа для окон, которую я хотел бы «запускать» определенное количество раз на основе номера, заданного пользователем.сделать программу, запускаемую несколько раз на основе пользовательского ввода
Я использую Visual Studio 2013 и C#.
У меня есть программа, которая имеет 16 ящиков для изображений и случайным образом присваивает фотографии 5 из этих ящиков. Человек должен выбрать правильный порядок изображений. Если они это сделают, они вознаграждаются, если они ошибаются, они наказываются раздражающим звуком.
В моей первой форме есть текстовое поле, которое пользователь может указать 'numberOfTrials' У меня есть вторая форма, которая принимает значение TextBox и преобразует его в int.
Я хочу, чтобы основная программа на моей второй форме запускала количество раз, которое указывает пользователь.
Моя программа работает, если я запускаю ее один раз, не используя эту переменную.
Я попытался использовать цикл for внутри метода, который запускает программу, но это не сработало. Он просто сделал все ящики для изображений белыми.
Затем я попытался использовать цикл for вокруг метода InitializeComponent(), но, опять же, это просто сделало все поля изображения белыми.
Мой цикла использует переменный текстовое поле, как, например:
for (int cycles = 0; cycles < numberOfTimesThrough; cycles++)
Я создаю переменную numberOfTimesThrough путем разбора переменного текстового поля.
Возможно, я делаю это неправильно?
На первой форме:
в верхней части класса:
public static string trialNumberString;
внутри метода, который вызывается, когда кнопка подтверждения нажимается:
trialNumberString = tbTrialNumber.Text.ToString();
На втором форма:
наверху этого класса:
//Integer value for the string of trials
public static int numberOfTimesThrough;
bool canConvert = Int32.TryParse(Settings.trialNumberString, out numberOfTimesThrough);
Это правильный способ получить строковое значение текстового поля в первой форме? Я уверен, что добавление цикла for должно сделать программу повторяющейся, поэтому должно быть что-то неправильно с тем, как я разбираю строку текстового поля в int. Люди, использующие эту программу, не хотят ее разбивать, поэтому данные, введенные в текстовое поле в первой форме, всегда будут находиться между 1 и, скажем, 25. Должен ли я все еще использовать попытку catch вокруг преобразования строк?
Любая помощь с этим будет принята с благодарностью.
Мне нравится ваша идея показать несколько экземпляров. Я просто пишу InitializeComponent() несколько раз во второй форме или я вызываю вторую форму несколько раз из первой формы? – smokeAndMirrors
@smokeAndMirrors Я бы создал несколько экземпляров второй формы из первой формы – ChaseMedallion