如何实现文本框的值动态地随着相同时间间隔而变化?

kunsheng2046 2007-11-03 11:26:57
想在网页中实现以下效果:

1、两个文本框:一个用来显示金钱的值,ID为TBMoney,初始值为1000;一个用来显示生命的值,ID为TBLive,初始值为5000;
2、每5秒间隔时间,TBMoney文本框的值自动加10,直到加到10000不再累加;每10秒时间间隔TBLive文本框的值减20,直0不再减;
3、变化结果能在页面上显示;
4、用asp.net基于c#实现;
其实这是个模拟游戏效果,随着时间推移,生命力值或金钱点数会增加或减少,此题不涉及写入数据库,用内置对象Application记住初始值,用定时器实现即可;
在此,先谢谢大家了,小弟初次发帖,表达不到位之处,愿虚心求教;
以下是本人写的代码,有点乱,运行 重载“Application_Start”方法未获取“0”参数
在WebForm1.aspx.cs
namespace KCSJ
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox TBMoney;
protected System.Web.UI.WebControls.TextBox TBLive;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面

      Application_Start();
}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

protected void Application_Start(Object sender, EventArgs e)
{
//5秒为一个循环单位
System.Timers.Timer time=new System.Timers.Timer(5000);
//动态添加timer的事件
time.Elapsed+=new System.Timers.ElapsedEventHandler(timer_Elapse);
//如果为假只循环一次
time.AutoReset=true;
//打开计数器
time.Enabled=true;

Application.Lock();
Application["Money"]=1000;
Application["Live"]=5000;
Application.UnLock();
}

private void timer_Elapse(object sender,System.Timers.ElapsedEventArgs e)
{
System.Timers.Timer time=new System.Timers.Timer(5000);
Application.Lock();
int x=Int32.Parse(Application["Money"].ToString());
if(x<10000)
{
Application["Money"]=x+10;
TBMoney.Text=Application["Money"].ToString();
}
else
{
time.Enabled=false;
Application.Lock();
Application.Remove ("Money");
Application.UnLock();
}
int y=Int32.Parse(Application["Live"].ToString());
if(y<1000)
{
Application["Live"]=y-10;
TBLive.Text=Application["Live"].ToString();
}
else
{
time.Enabled = false;
Application.Lock();
Application.Remove ("Live");
Application.UnLock();
}

}
}
}

在Global.asax.cs
protected void Application_Start(Object sender, EventArgs e)
{
Application["Money"]=1000;
Application["Live"]=5000;

}

...全文
220 4 点赞 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
kunsheng2046 2007-11-04
你帮我写下实现过程吗,我很菜的,谢谢大家了啊 !!
  • 打赏
  • 举报
回复
tantj 2007-11-03
不用那么麻烦的,用JS的setTimeout就行了
  • 打赏
  • 举报
回复
yydy1983 2007-11-03
楼上说的对,JS就可以做到了
  • 打赏
  • 举报
回复
zhiang75 2007-11-03
...这事用JScript吧..不用烦劳IIS了...
  • 打赏
  • 举报
回复
相关推荐
发帖
C#
创建于2007-09-28

10.6w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2007-11-03 11:26
社区公告

让您成为最强悍的C#开发者