我正在开发一个控制台应用程序,该应用程序创建一个表单来提醒用户某些给定状态 - 在稍后阶段,代码库将成为一个类库。
但是,现在,我需要显示表单(我猜 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 线程,但想知道是否有人对此有任何建议,或者以前遇到过这种情况。