如何实现文本框的值动态地随着相同时间间隔而变化?
想在网页中实现以下效果:
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;
}