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?

VSTO启动屏幕或进度条

我发现在主线程上使用模态较少的形式更容易,到目前为止还没有看到模态较少的方法有任何问题。类似于

下面的代码
var splashWindow = new SplashWindow();
splashWindow.Show();
splashWindow.SetMessage("Starting please wait...");
DoSomeWork(splashWindow);
splashWindow.Close();

下面您将看到我用c#为Excel-VSTO编写启动屏幕的方法。我的Excel文件启用了宏(.xlsm)。步骤如下:

  1. 创建启动画面。让我们假设表单的名称是SplashScreen。
  2. 转到对象ThisWorkbook.cs的代码
  3. 检查代码如下:
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)