VSTO启动屏幕或进度条
本文关键字:启动 屏幕 VSTO | 更新日期: 2023-09-27 18:13:40
我正在做一个项目
Microsoft VSTO (office 2013 excel)
我有一些东西可能需要10秒才能打电话回来。
理想情况下,我想显示一个进度条或一些状态…经过一番搜索,我找到了一篇标题为:
的文章。如何为VSTO应用程序创建启动屏幕窗口?http://www.datazx.cn/fv7p5a/xw/oa2v/2q7xs6/mcccjfti - 988 m - f8r8 - 8 d44 - bstb4rfsi4xm23rsdfd.html
所以我开始在一个表单中创建这个代码,但后来我意识到我需要在我的方法中调用它并真正附加事件等…
文章说
"display a modal form on a background thread" What is the best way to do this?
我发现在主线程上使用模态较少的形式更容易,到目前为止还没有看到模态较少的方法有任何问题。类似于
下面的代码var splashWindow = new SplashWindow();
splashWindow.Show();
splashWindow.SetMessage("Starting please wait...");
DoSomeWork(splashWindow);
splashWindow.Close();
下面您将看到我用c#为Excel-VSTO编写启动屏幕的方法。我的Excel文件启用了宏(.xlsm)。步骤如下:
- 创建启动画面。让我们假设表单的名称是SplashScreen。
- 转到对象ThisWorkbook.cs的代码
- 检查代码如下:
public partial class ThisWorkbook
{
SplashScreen SC = new SplashScreen();
private async void ThisWorkbook_Startup(object sender, System.EventArgs e)
{
SC.Show();
await Task.Delay(3500);
SC.Close();
more code...
}
}
重要的是,您注意到我在子例程中添加了单词async。
private void ThisWorkbook_Startup(object sender, System.EventArgs e)