Я пытаюсь показать модальный диалог (ShowDialog), который был создан как WinForm. Диалоговое окно содержит элемент управления WebView2, который я хочу заполнить с помощью NavigateToString.
Я установил для свойства Source элемента управления WebView2 значение «about:blank», но когда я перехожу к Form_Shown() в форме диалогового окна (как предложено здесь),
CoreWebView2 имеет значение null.
Я попробовал вызвать await SureCoreWebView2Async() в Form_Load (как также предлагалось), но получил COMException, упомянутое в заголовке. Я также пытался сделать это изнутри делегата (form.Invoke или webView2Body.Invoke), что, как я думал, поместит код в поток пользовательского интерфейса элемента управления, но я все равно получаю то же исключение.
Как заставить это работать?
Вот код, который создает и показывает диалоговое окно:
Form2 formAsk = new Form2();
formAsk.Body = mailItem.Body;
DialogResult result = formAsk.ShowDialog();
Вот код внутри формы:
private void Form2_Load(object sender, EventArgs e)
{
this.Invoke((MethodInvoker)(delegate { EnsureCoreWebView2(); }));
Console.Write("Form2_Load is done");
}
private async void EnsureCoreWebView2()
{
await webView2Body.EnsureCoreWebView2Async();
Console.Write("EnsureCoreWebView2Async is done");
}
private void Form2_Shown(object sender, EventArgs e)
{
Console.Write("Form2_Shown is starting");
webView2Body.NavigateToString(Body);
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... ebview2asy