首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >带有VSTO加载项的c# Winform控件保持Excel响应

带有VSTO加载项的c# Winform控件保持Excel响应
EN

Stack Overflow用户
提问于 2018-08-07 02:38:20
回答 2查看 226关注 0票数 1

我是VSTO Excel外接程序和Winforms的新手。我已经创建了一个插件,它启动了一个winform页面,其中包含几个复选框、一个按钮和一个跟踪状态的标签。

winform一启动,我的excel就没有响应。我想使excel响应,即使与winform打开(并与按钮“完成”点击)。按钮将运行一个长时间运行的进程。我怎样才能做到这一点呢?有什么建议吗?

这是我的Ribbon类:

代码语言:javascript
复制
public partial class Ribbon1
    {
        private void Ribbon1_Load(object sender, RibbonUIEventArgs e)
        {

        }

        private void button1_Click(object sender, RibbonControlEventArgs e)
        {
            Form1 fs = new Form1();
            fs.ShowDialog();
        }

    }

Form类:

代码语言:javascript
复制
public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private async void button1_Click(object sender, EventArgs e)
        {
            label1.Text = "Processing please wait";
            await Task.Run(() => { longRunningProcess(); });
            label1.Text = "File 1 Processed";
        }
         public void longRunningProcess()
        {
            Thread.Sleep(5000);
        }
    }

更新:使用.show可以工作,但我无法访问label1.Text并得到错误信息:

代码语言:javascript
复制
System.InvalidOperationException: 'Cross-thread operation not valid: Control 'label1' accessed from a thread other than the thread it was created on.'

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-07 03:18:13

使用Show打开表单,并使用Invoke将其编组回UI线程。

票数 1
EN

Stack Overflow用户

发布于 2018-08-07 03:20:11

@Sievajet帮助解决了这个问题。发布代码,以防有人需要它。

代码语言:javascript
复制
private async void button1_Click(object sender, EventArgs e)
        {
            label1.Text = "Processing please wait";
            await Task.Run(() => { longRunningProcess(); });
            label1.Invoke((MethodInvoker)delegate {
                label1.Text = "File 1 Processed";
            });
        }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51713770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档