C#文本框在循环时不显示赋值
请问,是不是要设置那里吧,在调试的时候,我想看到文本框里的值是,0变成1变成2变成3变成4变成5这样下去...
请问,是不是要设置那里吧,在调试的时候,我想看到文本框里的值是,0变成1变成2变成3变成4变成5这样下去
展开
5个回答
展开全部
两个原因,一是循环太快了,点下去就已经结束了,二是单线程需要刷新控件
这么改
for(int gb=0;gb<100;gb++)
{
this.textBox1.Text = gb.ToString();
this.textBox1.Refresh();
System.Threading.Thread.Sleep(10);
}
更多追问追答
追问
难道在调试的时候也叫快了
追答
如果是单步调试,那你需要刷新控件 Refresh()
主线程在空闲时才会更新控件view层,所以如果不主动请求刷新,即便是单步调试也不会看到控件上显示新的数据,即便已经赋值
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-04-08 · 知道合伙人软件行家
关注
展开全部
你这个速度太快了,界面也来不及反应就直接过了到最后一步了。
每一次迭代过程中,需要让界面来得及响应。
你这也不是多线程的问题。没有跨线程调用。
让程序暂停下就可以看到结果了。
用backgroundworker来解决你要的问题吧
每一次迭代过程中,需要让界面来得及响应。
你这也不是多线程的问题。没有跨线程调用。
让程序暂停下就可以看到结果了。
用backgroundworker来解决你要的问题吧
追问
不是快的原因,我在调试的时候,好慢,2秒钟才下一步,就是看不到文本框中有值,一值到大括号结束才有99
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
肯定啊,文本值只显示你的最后一次赋值的结果撒!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个是因为单线程
你得用我线程,加委托才可以显示
你得用我线程,加委托才可以显示
追问
请问代码怎样写吧,能不能写个例子呢
追答
先给你一个简单的办法
你可以在你的显示语句后面加入一句
Application.DoEvents();
不过这样显示,你的100个数的循环太小了,你可以加到10000看效果
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是不会显示的你需要开线程
追问
新手求请教,怎样开线程啊,写个代码来看看咯
追答
这个自己查阅一下资料吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询