我在第一张表格上有Timer控件(和一个Button)。
想法是,当用户点击按钮时,会显示带有新按钮的新模态窗口,如果他想要在点击模态表单按钮时停止计时器,则会有疑问。
你能帮我解决这个问题吗?
答案 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
使用此方法,您还可以从主窗体和模式窗体启动或停止计时器。 你会明白这一点:)
问候!