我的WinForm里面有WebBrowser控件。
我正面临来自WebBrowser控件的恼人闪烁。这表明WebBrowser控件(或背景)的主体在加载网页之前显示大约200ms,我无法摆脱它。
我想,当调用myForm.Show()在WebBrowser完成加载时看到窗口,而不是看到这种闪烁。
当WebBrowser控件完成加载页面时调用myForm.Show()以显示WebForm页面有什么办法吗?
我了解DocumentCompleted事件并阅读并尝试了一些技巧mentioned here,但在显示网页之前仍然无法摆脱这个填充的空白背景。
任何提示?
答案 0 :(得分:0)
public class MyForm : Form
{
WebBrowser _Webbrowser = new WebBrowser();
TaskCompletionSource<object> _tcs = new TaskCompletionSource<object>();
public MyForm(string url)
{
_Webbrowser.ScriptErrorsSuppressed = true;
this.Controls.Add(_Webbrowser);
_Webbrowser.DocumentCompleted += (s, e) => { _tcs.TrySetResult(null); };
_Webbrowser.Navigate(url);
}
public async new void Show()
{
await _tcs.Task;
base.Show();
}
}