我有一个我正在做的项目
Microsoft VSTO (office 2013 excel)
我有一些事情会让电话花费大约10秒才能回来。
理想情况下,我想显示进度条或某些状态...经过大量搜索后,我发现了一篇标题为:
的文章如何为VSTO应用程序创建启动画面窗口? http://www.datazx.cn/Fv7p5a/xw/oa2v/2q7xs6/mcccjfti-988m-f8r8-8d44-bstb4rfsi4xm23rsdfd.html
所以我开始在一个表单中创建这个代码,但后来我意识到我需要在我的方法中调用它并真正附加事件等...
文章说
"display a modal form on a background thread" What is the best way to do this?
答案 0 :(得分:2)
我发现在主线程上使用模态较少的形式更容易,到目前为止还没有看到模态较少的方法有任何问题。像下面的代码
var splashWindow = new SplashWindow();
splashWindow.Show();
splashWindow.SetMessage("Starting please wait...");
DoSomeWork(splashWindow);
splashWindow.Close();
答案 1 :(得分:0)
接下来您将看到我在 C# 中为 Excel-VSTO 编写启动画面的方法。我的 Excel 文件已启用宏 (.xlsm)。这些是步骤:
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)
我希望这很有用。