一个循环显示的问题!!急,急
我们定义一个TextBox(ID为txtMessage),一个Button(ID为txtTest)private void btnTest_Click(object sender, EventArgs e)
{
for (int i = 0; i < 10000; i++)
{
this.txtMessage.Text = i.ToString();
}
}
以上代码的运行结果:消息框内只显示9999,并且有较长的等待时间;
为了实时显示1--9999,要怎么做呢?请各位高手帮忙解答一下! --------------------编程问答-------------------- 你想达到那种效果,只能在客户端用js完成。 --------------------编程问答-------------------- 在windowform中直接在this.txtMessage.Text = i.ToString(); 下面加上Application.Doevent();
就可以了
在webform里面应该用异步比较好
定义一个委托异步执行一个方法 --------------------编程问答-------------------- 实时显示?
那用定时器Timer刷新
设置个开关变量 --------------------编程问答-------------------- 在winform中加上Application.Doevent(); 或者sleep()一下都行的
在web中不建议服务端执行这样的代码,用JS实现吧 --------------------编程问答--------------------
--------------------编程问答--------------------
private void btnTest_Click(object sender, EventArgs e)
{
string str="";
for (int i = 0; i < 10000; i++)
{
str+=i.ToString();
}
this.txtMessage.Text = str.ToString();
}
--------------------编程问答-------------------- 将MyDiv.innerText = y;改成document.all.txtMessage.value = y;就可以了 --------------------编程问答-------------------- 关注…… --------------------编程问答-------------------- 客户端实现好些,这样的代码怎么会写在服务端?晕。你不可能把页面刷新10000次来实现此效果吧? --------------------编程问答--------------------
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<script language="javascript" type="text/javascript">
var y = 0;
function myTimer()
{
y = 0;
setInterval("DoSomething()",500);
}
function DoSomething()
{
if(y != 10000)
{//debugger;
MyDiv.innerText = y;
y++
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="txtMessage" runat="server" ></asp:TextBox>
<input id="Button1" type="button" value="开始" onclick="myTimer()"/>
</div>
</form>
</body>
</html>
先看清楚 --------------------编程问答-------------------- 用客户端代码吧
页面刷新10000次很恐怖的! --------------------编程问答-------------------- 文本框默认是可以添加一行的内容啊
使用列表框listbox吧,或者把文本框设置成multiline --------------------编程问答--------------------
private void btnTest_Click(object sender, EventArgs e)
{
string str="";
for (int i = 0; i < 10000; i++)
{
str=i.ToString();
this.txtMessage.Text = str.ToString();
System.Threading.Thread.Sleep(300);//暂停线程是为了较慢显示替换过程
}
}
本来以为可以,也不对 --------------------编程问答-------------------- private void btnTest_Click(object sender, EventArgs e)
{
for (int i = 0; i < 10000; i++)
{
this.txtMessage.Text+ = i.ToString();
}
} --------------------编程问答-------------------- private void btnTest_Click(object sender, EventArgs e)
{
for (int i = 0; i < 10000; i++)
{
this.txtMessage.Text+ = i.ToString();
}
} --------------------编程问答--------------------
我在VS2005中运行了,通过,呵呵,谢谢,学习了
补充:.NET技术 , ASP.NET