【发布时间】:2020-12-25 07:41:41
【问题描述】:
我是 C++/CLI 新手,想在按下按钮后短时间内禁用按钮。 我已经实现了一个计时器事件,但它被触发的次数比我预期的要多。我不知道。
private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e)
{
timer1Count++;
timer1->Stop();
this->timer1->Enabled = false;
MessageBox::Show("Timer1 Event Triggered. timer1Count = " + System::Convert::ToString(timer1Count));
this->button1->Enabled = true;
}
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{
this->button1->Enabled = false;
this->timer1->Enabled = true;
this->timer1->Interval = 2000;
timer1->Tick += gcnew EventHandler(this, &MyForm::timer1_Tick);
timer1->Start();
}
以上是我的定时器事件的核心。我的问题是
- 当我第一次按下 button1 时,timer1_tick 函数会执行一次。
- 当我第二次按下 button1 时,timer_tick 函数会执行两次。
- 当我第三次按下 button1 时,timer_tick 函数执行了 3 次。 ......
事件被触发的次数不断增加。 我只想按一次按钮触发事件。
顺便说一句,我的 IDE 是 Visual Studio Community 2017。
谢谢
Daydream_eug
【问题讨论】:
标签: forms visual-c++ timer