如何在父表单上停止计时器(C#)

时间:2011-12-27 11:20:11

标签: c# timer

我在第一张表格上有Timer控件(和一个Button)。

想法是,当用户点击按钮时,会显示带有新按钮的新模态窗口,如果他想要在点击模态表单按钮时停止计时器,则会有疑问。

你能帮我解决这个问题吗?

4 个答案:

答案 0 :(得分:3)

您还可以根据答案在表单上设置带有问题的DialogResult,并在主对话框中查看结果。

ConfirmationForm confirmationForm = new ConfirmationForm();

DialogResult dialogResult = confirmationForm.ShowDialog();
if (dialogResult == DialogResult.OK)
{
  // Stop timer here
}

或使用标准对话框

DialogResult dialogResult = MessageBox.Show("Are you sure you want to stop the timer?", "Stop timer", MessageBoxButtons.YesNo);
if (dialogResult == DialogResult.Yes)
{
  // Stop timer here
}

编辑:将confirmationForm.Show更改为confirmationForm.ShowDialog。

答案 1 :(得分:1)

您可以在第二个表格上添加一个属性来接收第一个表格的计时器:

    private Timer timer;
    public frmModal(Timer tmrref)
    {
        this.timer = tmrref;
        InitializeComponent();
    }

然后当您显示模态表格时,您可以传递计时器:

frmModal frm = new frmModal( this.timer1);
frm.ShowDialog();

然后点击模态表单按钮只需停止计时器:

timer.Stop();

答案 2 :(得分:0)

在名为Boolean

的第二种形式中声明bStopTimer属性

如果用户按了"是",请将bStopTimer设为True 否则,False

关闭子表单时,请检查childForm.bStopTimer并按照该行为进行操作。

答案 3 :(得分:0)

以模态形式声明一个公共布尔属性。 从主窗体中使用循环UNTIL,布尔值为True

While not MyVal = true
   ModalForm.show
End While

使用此方法,您还可以从主窗体和模式窗体启动或停止计时器。 你会明白这一点:)

问候!