C# 中的计时器如何传参?

假设有5个label

鼠标点击第一个时,第一个就往下移动
点第二个时`第二个也开始往下移动

能不能像javascript那样做
onclick=move(this) 控件1
onclick=move(this) 控件2
onclick=move(this) 控件3

function move(obj)
{
obj.style.top = parseInt(obj.style.top)+1
setTimeout("move("+obj+")",1)
}

的确触发了多个计时器,但C#当中的代码`有没有更好的办法呢?

非要用全局的变量吗?` 而且Timer组件也要手动去设定多个?

Timer组件的事件委托`方法好像不能传参了。。

请高手赐教
楼下的`说下具体做法好嚒

困扰我很久了` C# 怎么做。。

可不可以举个简单的例子?

MSDN:
.NET Framework 类库
Timer 构造函数 (TimerCallback, Object, Int32, Int32)
使用 32 位的有符号整数指定时间间隔,初始化 Timer 类的新实例。

命名空间:System.Threading
程序集:mscorlib(在 mscorlib.dll 中)
语法
public Timer (TimerCallback callback,Object state,int dueTime,int period)
参数
callback
一个 TimerCallback 委托,表示要执行的方法。

state
一个包含回调方法要使用的信息的对象,或者为 空引用(在 Visual Basic 中为 Nothing)。

dueTime
调用 callback 之前延迟的时间量(以毫秒为单位)。指定 Timeout.Infinite 以防止计时器开始计时。指定零 (0) 以立即启动计时器。

period
调用 callback 的时间间隔(以毫秒为单位)。指定 Timeout.Infinite 可以禁用定期终止。

TimerCallback 委托:
C#
[ComVisibleAttribute(true)]
public delegate void TimerCallback (Object state)
参数
state
一个对象(包含与该委托所调用的方法相关的特定于应用程序的信息)或为 空引用。
这个就是用来传参的。
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-01-11
可以~~
第2个回答  2007-01-26
f

参考资料:xyjourney.com

C# 中的计时器如何传参?
参数 callback 一个 TimerCallback 委托,表示要执行的方法。state 一个包含回调方法要使用的信息的对象,或者为 空引用(在 Visual Basic 中为 Nothing)。dueTime 调用 callback 之前延迟的时间量(以毫秒为单位)。指定 Timeout.Infinite 以防止计时器开始计时。指定零 (0) 以立即启动计时器。period...

c#winform做的一个计时器,按下暂停按钮在开始的时候时间清零了,怎么写...
弄个全局变量,保存计时的时间就行了

在C#中Elapsed是什麽意思?
c#中的Timer.Elapsed 事件,达到设置的间隔时间将设置该事件的事件处理程序,启动计时器。通俗的解释就是每隔自定的间隔时间就会触发一次事件,若不暂停将无限循环触发,相当于一个计时器。C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。它在继承C和C++强大功能的同时...

c#计时器用法?
添加一个timer1,为timer1的Tick事件写程序,具体实现方法,给个例子:int n = 0;\/\/用于计数,此程序改变的也是这个值private void timer1_Tick(object sender, EventArgs e)\/\/每1000毫秒执行一次{n++;MessageBox.Show("你好,这是第"+n+"次打招呼哦");\/\/弹出对话框告诉你if (n >= 4)\/\/不...

C# 使用Timer和ProgressBar控件制作一个倒计时器
使用C#制作倒计时器,引入Timer和ProgressBar控件,实现简单却有趣的计时功能。博主通过创建窗体应用展示实现步骤,包括界面设计、控件配置以及关键代码解析。具体步骤如下:1. **创建窗体应用**:设计一个包含Timer、ProgressBar及ComboBox控件的界面。2. **配置控件属性**:- 设置ComboBox为静态选项,用于...

C# Threading.Timer 当执行的代码量很多的时候,如何实现
BackgroundWorker对象并在DoWork事件中添加对应的事件处理程序,这样时间到的时候新建一个该类实例,然后启动操作。等到处理完之后再从这一类中提取出具体数据。一般如果在主线程中timer的事件处理程序时间超过100ms,或者是它计时的1\/10长度的话,程序都会有点卡。所以最好是用其它线程处理这一个项目 ...

c#计时器如何保存计时
一、基于 Windows 的标准计时器(System.Windows.Forms.Timer)开发工具的工具箱中的Timer控件拖到窗体上,然后设置一下事件和间隔时间等属性就可实现功能,最简单的方式。二、基于服务器的计时器(System.Timers.Timer)其中包含两种方式:(1)通过SynchronizingObject属性依附于窗体 (2)不使用SynchronizingObject...

在C#中,怎么把一个类的里面的变量给其他类使用?内详
public static int twoNum;public static int thrNum;} class Bar { public void timer1_Tick(object sender, EventArgs e){ Random j = new Random();Pub.oneNum = j.Next(10);Pub.twoNum = j.Next(10);Pub.thrNum = j.Next(10);} } class Foo { private void button2_Click(...

c#计时器timer在do while里为什么不执行?
CPU会一直在这个循环中消耗时间。虽然理论上不至于让机器死掉,但是怎么看也是一个不科学的代码。你完全可以这么写 Timer.Enable = true;Sleep(5000);Timer.Enable = false;或者这么写,在Timer的触发函数里加上 if(DateTimer.Now > aftertime)Timer.Enable = false;只不过需要将aftertime作为成员变量...

C#计时器 比如秒表怎么设计?
\/\/开始按钮 private void button1_Click(object sender, EventArgs e){ sw = new System.Diagnostics.Stopwatch();sw.Start();timer1.Start();} \/\/停止按钮 private void button2_Click(object sender, EventArgs e){ sw.Stop();TimeSpan ts=sw.Elapsed ;label1.Text = String.Format("{0}...

相似回答
大家正在搜