OpenFileDialog-立即加速发布/隐藏对话框



你好,我在文件对话框中遇到问题

标准代码,但在选择大文件时会冻结(600MB+xls文件,我需要首先将其重新格式化为xlsb,然后从中流式传输数据,但这在这里并不重要(。

我想要实现的是在点击Open按钮时隐藏对话框,这样我就可以显示加载消息

但我不确定我该如何做到这一点。我可以以某种方式订阅打开按钮吗?

OpenFileDialog openFile = new OpenFileDialog() { DereferenceLinks = false };
openFile.Title = "Select Supplier List";
openFile.Filter = "Excel files (*.*xls*)|*.*xls*";
try
{
if (openFile.ShowDialog() == true) 
{
/* Takes long time to go after selection */
ViewModel.ReportPath = openFile.FileName;
ViewModel.FileTrueName = Path.GetFileName(ViewModel.ReportPath);
}
}
catch
{
ViewModel.ReportPath = null;
ViewModel.FileTrueName = null;
}

用任务包装代码,帮助:(在根据评论搜索答案的过程中发生了一些变化。

Task.Run(() => 
{
OpenFileDialog openFile = new OpenFileDialog();
openFile.Title = "Select Supplier List";
openFile.Filter = "Excel Files(*.xls; *.xlsx; *.xlsb; *.xlsm)| *.xls; *.xlsx; *.xlsb; *.xlsm";
try
{
if (openFile.ShowDialog() == true)
{
ViewModel.ReportPath = openFile.FileName;
ViewModel.FileTrueName = Path.GetFileName(ViewModel.ReportPath);
}
}
catch
{
ViewModel.ReportPath = null;
ViewModel.FileTrueName = null;
}
});

最新更新