Я новичок в надстройке VSTO Excel и Winforms. Я создал надстройку, которая запускает страницу winform с несколькими флажками, кнопкой и одной меткой для отслеживания статуса.
Как только запускается winform, мой excel не реагирует. Я хотел бы, чтобы excel реагировал даже при открытом winform (и при нажатии кнопки «Готово»). Кнопка запустит длительный процесс. Как я могу этого добиться? Есть указатели?
Вот что у меня есть класс ленты:
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();
}
}
Класс формы:
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 и получить сообщение об ошибке:
System.InvalidOperationException: 'Cross-thread operation not valid: Control 'label1' accessed from a thread other than the thread it was created on.'