系统Windows窗体计时器参数

3
你如何向 System.Windows.Forms.Timer 传递参数?
private System.Windows.Forms.Timer timer;
timer.Interval = 1000;
timer.Tick += new EventHandler(timer_Tick);
timer.start

private void timer_Tick(object sender, EventArgs e)
{

}

我该如何传递对象 sender 的值?


你想要实现什么,发送者是 Forms.Timer 并且将根据设置的时间间隔调用它。 - V4Vendetta
使用计时器的Tag属性作为userState --- 检查更新后的答案。 - Pranay Rana
2个回答

6

简单的计时器代码 - 无需传递任何发送者,当间隔时间结束时调用。

    Timer t = new Timer();

    t.Interval = 2000;

    timer1.Enabled = true;

    timer1.Tick += new System.EventHandler(OnTimerEvent);

//You can use Tag property of your timer as userState

    void timer1_Tick(object sender, EventArgs e)
    {
        Timer timer = (Timer)sender;
        MyState state = timer.Tag  as MyState;
        int x = state.Value;
    }

请查看以下详细信息:http://www.c-sharpcorner.com/UploadFile/mahesh/WorkingwithTimerControlinCSharp11302005054911AM/WorkingwithTimerControlinCSharp.aspx。该链接涉及IT技术,介绍了在C#中使用计时器控件的方法。

但我想将数据库行传递到计时器。 - sangita navale
Tag属性是对象类型,因此您可以只需执行t.Tag = myDatarow,并在time1_Tick()事件处理程序中将其读取为DataRow row = timer.Tag as DataRow;,如果您遵循Pranay Rana答案中的代码。 - Peter

1

我猜计在计时器类上有一个标签属性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接