我正在使用C#2.0并在Winforms上工作.我有两个应用程序(app1,app2).当app1运行时,它将自动调用app2.我在app2中有一个计时器,在timer_tick中我激活了一个buttonclick事件.但是我希望这个按钮点击只在应用程序启动时被触发一次.
我面临的问题是出于一些不知情的原因,即使我使mytimer.Enable = false,计时器也会被触发多次.有没有办法我可以让计时器不被第二次调用.或者有没有办法让我可以自动触发按钮点击事件而不使用定时器.
这是代码:
private void Form1_Activated(object sender, EventArgs e)
{
mytimer.Interval = 2000;
mytimer.Enabled = true;
mytimer.Tick += new System.EventHandler(timer1_Tick);
}
private void timer1_Tick(object sender, EventArgs e)
{
mytimer.Enabled = false;
button1_Click(this, EventArgs.Empty);
}
private void button1_Click(object sender, EventArgs e)
{
}
Run Code Online (Sandbox Code Playgroud)
我还没有测试过这个(所以准备编辑),但我怀疑是因为你mytimer.Enabled = true;在Form1_Activated事件中启用了timer(),而不是在表单初始加载时.因此,每次表单变为活动状态时,它都会重置启用计时器.
编辑:好的,我现在已经验证:假设您确实需要计时器,请将mytimer.Enabled移动到表单的构造函数中.
您可以尝试删除处理程序而不是禁用计时器
mytimer.Tick -= new System.EventHandler(timer1_Tick);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10184 次 |
| 最近记录: |