2010-01-12 63 views
0

我有WebBrowser組件的問題。出於某種原因,當我點擊它時,它禁止我將注意力放在richTextBox上。WebBrowser控件停止關注richtextbox

我有2幾乎相同的形式。

第一種和第二種形式的主要區別在於,form1正在修改WebBrowser DocumentText,而form2正在使用webBrowser來顯示臨時文件的內容。

第一種形式工作得很好,WebBrowser並未禁用專注於richTextBox。但第二種形式是有問題的。當你點擊進WebBrowser組件,並回到richtextBox,它再也不會通過Focus()方法獲得焦點:(

+0

聖sh * t!這是迄今爲止我所見過的最長的'問題'。也許你可以縮短到可讀的比例? – Webleeuw 2010-01-12 21:29:19

+0

您是否介意有問題的代碼或問題描述? – Klinki 2010-01-13 06:47:09

回答

0

我解決了它:)我添加while循環等待,直到webBrowser.Document屬性被完全初始化。比我使用webBrowser.Document.CreateElement創建新的html元素,以及webBrowser.Document.Body.AppendChild將它們添加到文檔中。 (我停止使用臨時文件...)

0

我有同樣的問題,並與您的答案我想出了另一種解決方案,適合我。

我的解決方案與您的解決方案非常相似。 我有一個Rich TextBox有一個文本和一個顯示該文本的WebBrowser(爲了將它合併到一個電子郵件中)。

因此,當我更改RichTextBox中的文本時,使用事件處理程序「TextChanged」,我將HTML更新到WebBrowser。但是當我像WebBrowser一樣點擊你的身體時,我只能改變一個字符,並且WebBrowser重新獲得焦點。煩人...

因此,經過長時間的搜索和您的答案,我想出了:我再次把焦點放在WebBrowser上,然後在RichTextBox上。那可行!

private void RichTextBox1_TextChanged(object sender, EventArgs e) 
{ 
    /* your stuff */ 
    WebBrowser1.Navigate("about:blank"); 
    WebBrowser1.Document.OpenNew(false); 
    WebBrowser1.Document.Write(your_html); 
    WebBrowser1.Focus(); 
    RichTextBox1.Focus(); 
} 

瞧,它的工作原理!

希望它能幫助別人!