在 SunnyUI 中,ShowWaitForm
方法用于显示一个等待窗口,通常用于长时间的操作过程中提示用户等待。如果您想实现一个等待窗口在指定时间内自动关闭的功能,可以使用定时器来实现。
下面是一个示例代码,演示如何使用 ShowWaitForm
显示等待窗口,并在指定时间后自动关闭:
示例代码
第一种方法
private System.Timers.Timer timeoutTimer;
private void btnConnect_Click(object sender, EventArgs e)
{
try
{
ShowWaitForm("连接服务器中...");
// 启动定时器
StartTimeoutTimer(5000); // 设置超时时间为 5 秒
if (Connect())
{
State = EditorStateEnum.ConectedServer;
HideWaitForm();
LoadShowMapData();
var carTool = solutionCtrl1.SelectedModelObject() as AGVTool;
if (carTool != null)
{
var car = serverCars.Where(p => p.CarCode == carTool.CarCode).FirstOrDefault();
SetCarButtonStatus(car);
}
}
}
catch (Exception ex)
{
ex.LogError();
HideWaitForm();
Comm.ErrorMessage(ex.Message);
}
}
private void StartTimeoutTimer(int timeout)
{
// 创建定时器
timeoutTimer = new System.Timers.Timer(timeout);
timeoutTimer.AutoReset = false;
timeoutTimer.Elapsed += TimeoutTimer_Elapsed;
}
private void TimeoutTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
// 关闭等待窗口
HideWaitForm();
if (State != EditorStateEnum.ConectedServer)
{
Comm.InfoMessage("连接服务器超时!请稍后重试");
}
}
Csharp
深色版本
1using System;
2using System.Threading;
3using System.Windows.Forms;
4using Sunny.UI;
5
6namespace SunnyUIExample
7{
8 public partial class Form1 : Form
9 {
10 private Timer timeoutTimer;
11
12 public Form1()
13 {
14 InitializeComponent();
15 }
16
17 private void button1_Click(object sender, EventArgs e)
18 {
19 // 显示等待窗口
20 UIWaitForm.ShowWaitForm(this);
21
22 // 启动定时器
23 StartTimeoutTimer(TimeSpan.FromSeconds(5)); // 设置超时时间为 5 秒
24 }
25
26 private void StartTimeoutTimer(TimeSpan timeout)
27 {
28 // 创建定时器
29 timeoutTimer = new Timer(CloseWaitForm, null, timeout, Timeout.Infinite);
30 }
31
32 private void CloseWaitForm(object state)
33 {
34 // 关闭等待窗口
35 UIWaitForm.CloseWaitForm(this);
36 }
37 }
38}
代码解释
-
导入命名空间:
- 导入
System
、System.Threading
和System.Windows.Forms
命名空间,它们分别用于基本类型、定时器和 Windows 表单。 - 导入
Sunny.UI
命名空间,用于使用 SunnyUI 控件。
- 导入
-
创建定时器:
- 在
StartTimeoutTimer
方法中创建一个Timer
对象,并设置一个超时时间。当超时时间到达时,将调用CloseWaitForm
方法。
- 在
-
显示等待窗口:
- 使用
UIWaitForm.ShowWaitForm
方法显示等待窗口。
- 使用
-
关闭等待窗口:
- 在
CloseWaitForm
方法中使用UIWaitForm.CloseWaitForm
方法关闭等待窗口。
- 在
-
按钮点击事件:
- 在按钮点击事件中调用
StartTimeoutTimer
方法来启动定时器,并显示等待窗口。
- 在按钮点击事件中调用
注意事项
- 确保您的项目已经安装了 SunnyUI,并且在项目中引用了 SunnyUI 命名空间。
- 使用
ShowWaitForm
和CloseWaitForm
方法时,确保传入的参数是正确的窗口实例。 - 如果您的应用程序中有多个窗口需要使用等待窗口,请确保每个窗口都独立管理等待窗口的显示和关闭。