我有一个简单的FormApplication脚本,其中包含按钮和一些文本框。我想要在单击按钮时,一个文本框显示一些数字。我如何才能使它充满活力。
private void button1_Click(object sender, EventArgs e)
{
txt3.Text = "";
for (int i = 0; i <50; i++)
{
Random random = new Random();
int randomNumber = random.Next(100, 150);
txt3.Text = randomNumber.ToString();
}
}
现在,它等待循环完成并显示最新编号。我希望它在文本框的循环过程中分别显示每个数字。似乎使用Dynamic TextBox有点困难,是否有其他解决方案以主要形式显示此数字?问候,
现在,它等待循环完成并显示最新编号。
这是因为该操作是单线程的,因此在完成之前不会进行UI更新。更改方式取决于这是Windows应用程序还是Web应用程序。
例如,如果这是Windows Forms应用程序,则您希望Application.DoEvents()
在每次循环迭代时调用以更新UI:
txt3.Text = randomNumber.ToString();
Application.DoEvents();
每次都会更新UI的文本框。(尽管它会非常快,所以我怀疑您是否会注意到它。Thread.Sleep()
如果您想减慢它的速度,则可能会扔进去。)
如果这是一个Web应用程序,那么您将需要在客户端而不是服务器端完成整个任务。这是因为至少从服务器的角度来看,在Web应用程序中“更新UI”意味着返回响应并等待另一个请求。这仅在更新单个UI元素时会导致浏览器与服务器之间来回频繁。(虽然它会足够慢,以至于您会注意到它,但这将是一个糟糕的UX。)因此,在这种情况下,您希望将代码移至JavaScript,这样做的好处是不会使用单线程和会按您期望的方式更新用户界面。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句