Windows窗体应用程序的循环没有工作

Windows窗体应用程序的循环没有工作

问题描述:

int i = 0; 
private void button1_Click(object sender, EventArgs e) 
{ 
    for (int j = 10; j < 1000; j = j + 1) 
    { 
     string y = i.ToString(); 
     webBrowser1.Document.GetElementById("lst-ib").SetAttribute("value", y); 
     i++; 
    } 
} 

这是代码,我有一个Windows窗体应用程序 工作的部分,我希望它的输入值,并显示它往上走但是它只是跳转到年底放置最后的输出而不是数起来。有些人说要使用计时器,但我一直无法让他们工作。 任何想法?Windows窗体应用程序的循环没有工作

+0

尝试在设置属性后调用'webBrowser1.Refresh()'。这将强制重绘。然而,它会(因为删除的答案指出)更新太快,看看效果。你首先要做的是什么? – Jens

+0

它只会在谷歌搜索框中计数。只是为了测试。 –

+0

刷新停止动作,如果我把它放在for循环中而不显示任何东西 –

您正在使用循环锁定UI线程,以便它不更新控件,直到完成其工作。当循环完成并刷新UI时,最终只会看到最终值。请参阅Timer控件。你可以告诉它定期发起一个事件,它会让你的UI被正确更新。

Timer添加到您的Form,然后将以下代码插入到您的构造函数中进行试用。目前,它每1毫秒更新你的元素(实际上,它不会那么快)。

int i = 0; 
int j = 10; 

timer1.Interval = 1; 
timer1.Tick += (s, e) => 
{ 
    string y = i.ToString(); 
    webBrowser1.Document.GetElementById("lst-ib").SetAttribute("value", y); 

    i++; 
    j++; 

    if (j > 1000) 
     timer1.Stop(); 
}; 

timer1.Start(); 
+0

它仍然不显示进入文本框的所有内容。它只是需要更长的时间才能运行(我缩短到只有j

+0

它现在是否改变,还是只显示最后一个值? –

+0

仍然只显示最后一个值 –