2014-01-26 28 views
0

我有一个Windows窗体程序,我想根据用户指定的数字'运行'一定次数。使程序根据用户输入运行多次

我正在使用Visual Studio 2013和C#。

我有一个程序,有16个图片框,并随机分配图片到这些框中的5个。该人必须选择正确的图片顺序。如果他们这样做,他们会得到回报,如果他们选择错了,他们会受到恼人的声音惩罚。

我的第一种形式有一个TextBox,用户可以指定'numberOfTrials' 我有第二种形式,它接受TextBox的值并将其转换为int。

我想让我的第二个表单上的主程序运行用户指定的次数。

如果我运行一次,而不使用这个变量,我的程序会工作。

我已经尝试在启动程序的方法内使用for循环,但是这不起作用。它只是使所有的图片框变成白色。

然后,我尝试在InitializeComponent()方法周围使用for循环,但是,这又使得所有图片框都变成了白色。

我对循环使用文本框变量作为这样的:

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之间。我是否还需要围绕字符串转换尝试使用try catch?

任何帮助,这将不胜感激。

回答

1
  • 你不需要重新运行整个程序只是为了显示一种形式多次:不是,只是实例化了第二种形式的多个实例,并显示在序列。

  • 为了安全地解析文本的数量,你可以使用int.TryParse()

+0

我喜欢你的想法显示多个实例。我只是在第二个表单上多次写入InitializeComponent(),或者从第一个表单多次调用第二个表单? – smokeAndMirrors

+1

@smokeAndMirrors我会从第一个表单创建第二个表单的多个实例 – ChaseMedallion

1

您可以通过访问它的Text属性来获取文本框的值,并从那里解析返回到int的字符串。

string s = textBox.Text; 
int i = int.Parse(s); 

使用任何验证逻辑也是必要的。

+0

我也尝试这种方法,但我收到一条错误消息,表示“无法字符串隐式转换为int” :-( – smokeAndMirrors

+0

其实,我没有尝试使用textBox.text我只使用textBox.Text.toString()我会尝试它没有toString()标记 – smokeAndMirrors

相关问题