-1
我在c#中編寫簡單的web瀏覽器。對於多選項卡功能,我添加了tabcontrol並將webbrowser1放入其中。我用toolstripbutton動態添加的TabPages,化網頁瀏覽器(和處理與webbrowser1事件事件):處理動態創建的控件?
TabPage tabpage = new TabPage();
tabControl1.Controls.Add(tabpage);
WebBrowser webbrowser = new WebBrowser();
webbrowser.Parent = tabpage;
webbrowser.Dock = DockStyle.Fill;
webbrowser.Navigate("www.google.com");
webbrowser.DocumentTitleChanged += new EventHandler(webBrowser1_DocumentTitleChanged);
webbrowser.StatusTextChanged += new EventHandler(webBrowser1_StatusTextChanged);
webbrowser.ScriptErrorsSuppressed = true;
webbrowser.DocumentCompleted += new System.Windows.Forms.WebBrowserDocumentCompletedEventHandler(this.webBrowser1_DocumentCompleted);
webbrowser.Navigated += new System.Windows.Forms.WebBrowserNavigatedEventHandler(this.webBrowser1_Navigated);
webbrowser.Navigating += new System.Windows.Forms.WebBrowserNavigatingEventHandler(this.webBrowser1_Navigating);
webbrowser.ProgressChanged += new System.Windows.Forms.WebBrowserProgressChangedEventHandler(this.webBrowser1_ProgressChanged);
我的問題是我不能妥善處理它們,因爲我寫了webbrowser1代碼和不知道如何調用動態創建的對象。我寫這個:
private void toolStripTextBox1_KeyDown(object sender, KeyEventArgs e)
{
foreach (Control c in tabControl1.SelectedTab.Controls)
{
if (e.GetType() == typeof(WebBrowser))
{
WebBrowser web = new WebBrowser();
if (e.KeyCode == Keys.Enter)
web.Navigate(toolStripTextBox1.Text);
}
}
}
但它根本不工作(即使對webbrowser1)。我應該如何解決這個問題?
在此先感謝
e是永遠等於輸入web瀏覽器它是一個事件,也是否是您創建的web瀏覽器的一個新實例,而不是創建事件處理器所給出的類型的實例。 –
也許你打算做'sender.GetType()'? '如果(發件人是WebBrowser)'會更好。 –
您還在您的事件處理程序中創建了一個新的WebBrowser對象,然後在新的WebBrowser中顯示該頁面,而不是使用您已經在選項卡中加載的頁面,以便您導航到的頁面不會顯示用戶。您還爲每個按鍵創建了「WebBrowser」,並將其中的大部分放在地板上以便稍後清理。 – pstrjds