我正在开发一个控制台应用程序,用于创建一个表单以警示用户某个给定状态。在后续阶段,代码库将变成一个类库。
然而,现在我需要显示该表单(我想这里最好使用ShowDialog方法),然后在表单关闭之前调用任意方法。
例如,我需要显示该表单,设置标签控件的文本值,等待n秒钟,然后更改标签的值,最后关闭表单。我知道这听起来有点琐碎,但我正在尝试证明设计的可行性。
我已经看了一圈,似乎不可能实现这个功能,因为ShowDialog()要求我在调用方法/类的代码列表中关闭表单后才能继续执行。
以下是我目前的代码:
然而,现在我需要显示该表单(我想这里最好使用ShowDialog方法),然后在表单关闭之前调用任意方法。
例如,我需要显示该表单,设置标签控件的文本值,等待n秒钟,然后更改标签的值,最后关闭表单。我知道这听起来有点琐碎,但我正在尝试证明设计的可行性。
我已经看了一圈,似乎不可能实现这个功能,因为ShowDialog()要求我在调用方法/类的代码列表中关闭表单后才能继续执行。
以下是我目前的代码:
PopUpForm myForm = new PopUpForm(string messageToDisplay);
myForm.ShowDialog();
//call myForm.someMethod() here, before the form closes
//dispose of the form, now that we've no use for it
myform.Dispose();
//target method in PopUpform class
public void someMethod()
{
lblText.Text = "Waiting for some reason";
//wait n number of seconds
lblText.Text = "Finished waiting. Form will now close";
//it doesn't matter if the form closes before the user can see this.
}
看起来ShowDialog()不支持这种行为。我正在研究BackgroundWorker线程,但想知道是否有人对此有建议或遇到过类似情况。