我正在开发一个基于WebBrowser控件的消息系统,以便我可以自由格式化文本。当用户离线并收到消息时,消息将被存储,并在他们重新登录时发送每条消息的事件。当我设置网站的默认HTML等内容时,通常使用以下方法:
while (this.webBrowser1.ReadyState != WebBrowserReadyState.Complete) Application.DoEvents();
当程序正常运行时,这个方法是有效的。但当用户处于离线状态接收到消息时,它会触发下一个消息事件,以此类推,直到最后一条消息。这意味着当用户处于离线状态时发送的最后一条消息是唯一显示的消息。我想要像Application.DoEvents()一样的东西,它允许控件保持更新和加载,但不会触发其他事件。
谢谢。
编辑:
我通过完全删除DoEvents()来解决了问题。与其在工作时更改DocumentText,我设置了一个字符串构建器,然后在最后一次性设置了html。
Application.DoEvents()
,通常表示你的设计存在问题。你是否有任何理由不能使用“完成”事件? - leppie