我创建了一个简单的窗体,当您运行它时会弹出一个对话框,但无法以编程方式将其关闭。有人可以帮我吗?
Label lb = new Label();
Form frm = new Form();
lb.Left = 100;
lb.Top = 44;
frm.Controls.Add(lb);
frm.ShowDialog();
System.Threading.Thread.Sleep(2000);
Run Code Online (Sandbox Code Playgroud)
..Sleep(2000)之后,我希望它关闭。我试过了:
frm.close();frm.dispose();frm.visible = false;
Run Code Online (Sandbox Code Playgroud)
提前致谢!
您可以在表单类中使用以下内容:
protected override async void OnLoad(EventArgs e)
{
base.OnLoad(e);
await Task.Delay(2000);
Close();
}
Run Code Online (Sandbox Code Playgroud)
在该OnLoad方法内部,运行一个等待2000 ms的任务并关闭表单。
要在特定时间后关闭任何表单,您可以使用扩展方法
public static class Extension
{
public static async Task CloseAfterDelay(this Form form, int millisecondsDelay )
{
await Task.Delay( millisecondsDelay );
form.Close();
}
}
Run Code Online (Sandbox Code Playgroud)
并在显示表单之前调用它
Label lb = new Label();
Form frm = new Form();
lb.Left = 100;
lb.Top = 44;
frm.Controls.Add(lb);
frm.CloseAfterDelay( 2000 );
frm.ShowDialog();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5686 次 |
| 最近记录: |