该用户从未签到


- 积分
- 19
|
发表于 2019-1-14 09:31:44
|
显示全部楼层
注册的timer事件是新建立的一个线程,所以在要用委托,你可以参考下我改的,网上也有很多实例,可以自己对比看看
public partial class Form1 : Form
{
System.Timers.Timer timer_test1=new System.Timers.Timer ();
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
timer_test1.Enabled = true;
timer_test1.Start();
}
private void Form1_Load(object sender, EventArgs e)
{
timer_test1.Elapsed += new System.Timers.ElapsedEventHandler(changetext);
timer_test1.Interval = 1000;
timer_test1.AutoReset = true;
}
private int n = 0;
public delegate void BtnDisplay(string msg); //声明委托
public void changetext(object sender, System.Timers.ElapsedEventArgs e)
{
n += 1;
showmsg(n.ToString ()); //调用委托方法
if (n > 1000)
{
n = 0;
}
}
private void showmsg(string msg)
{
if (button1.InvokeRequired )
{
BtnDisplay BtnDisplay = showmsg;
this.Invoke(BtnDisplay ,new object[] { msg});
}
else
{
button1 .Text = msg;
}
}
} |
|