2012-12-09 64 views
0

我想制作一种小型计算器。 这个计算器会随机选择1到1000之间的数字,你将不得不回答它们。 你会从好的和错误的答案中得分。 只要我只运行一次,一切都在工作。在循环中将焦点设置为文本框

如果我设置一个循环,它只允许我回答最后一次。我怎样才能让我的程序在每个循环之后停止?我试图将焦点设置到应该给出答案的文本框中,但直到最后一个循环完成时才设置焦点。

for (int i = 1; i <= 5; i++) 
{ 
    txtResultaat.Focus(); 
} 

显然这使得它在循环中运行5次,但它只允许我有一次机会在文本框中键入内容。 有没有人有这个解决方案?

+3

您需要重新考虑应用程序的设计。您需要等待用户在进入下一个文本框之前将文本输入到当前文本框中时引发的事件。 – ChrisF

+1

你能展示你的代码的更多部分吗?我们不知道你的方法是如何工作的。 Mb你没有使用线程,只是你的ui freez在循环启动后。 –

回答

0

那么你没有告诉程序实际上停下来,因为你只是让它循环5次,并且每次都将焦点设置到文本框中。一个更好的方法是保持某种形式的计数器,以确定他们已经回答了多少次(对于这个级别的程序,全局变量是最简单的,然后只是在程序加载时程序要求第一个数字,然后让这个事件结束,当用户点击答案按钮,然后在按钮事件中确定它们是否正确或错误,然后在事件结束时,输出新问题

0

那么,如果我要严格的理论,你的问题的答案是:使用突破指令

for (int i = 1; i <= 5; i++) 
{ 
    txtResultaat.Focus(); 
    break; 
} 

这将实现你的要求为:

谁能告诉我如何让我的程序在每个循环后停止?

如果它能让你的程序正确运行并做你想做的事......那我的朋友是另一回事。

0

另一种设计(使用while循环而不是for循环)使其工作。