axwebbrowser newwindow2 如何不自动激活新页面啊。
private void axWebBrowser1_NewWindow2(object sender, AxSHDocVw.DWebBrowserEvents2_NewWindow2Event e){
AxSHDocVw.AxWebBrowser _axWebBrowser = CreateNewWebBrowser();
e.ppDisp = _axWebBrowser.Application;
_axWebBrowser.RegisterAsBrowser = true;
}
private AxSHDocVw.AxWebBrowser CreateNewWebBrowser()
{
AxSHDocVw.AxWebBrowser _axWebBrowser = new AxSHDocVw.AxWebBrowser();
_axWebBrowser.Tag = new HE_WebBrowserTag();
TabPage _TabPage = new TabPage();
_TabPage.Controls.Add(_axWebBrowser);
_axWebBrowser.Dock = DockStyle.Fill;
_axWebBrowser.BeforeNavigate2 += new AxSHDocVw.DWebBrowserEvents2_BeforeNavigate2EventHandler(this.axWebBrowser1_BeforeNavigate2);
_axWebBrowser.DocumentComplete += new AxSHDocVw.DWebBrowserEvents2_DocumentCompleteEventHandler(this.axWebBrowser1_DocumentComplete);
_axWebBrowser.NavigateComplete2 += new AxSHDocVw.DWebBrowserEvents2_NavigateComplete2EventHandler(this.axWebBrowser1_NavigateComplete2);
_axWebBrowser.NavigateError += new AxSHDocVw.DWebBrowserEvents2_NavigateErrorEventHandler(this.axWebBrowser1_NavigateError);
_axWebBrowser.NewWindow2 += new AxSHDocVw.DWebBBrowserEvents2_NewWindow2EventHandler(this.axWebBrowser1_NewWindow2);
_axWebBrowser.ProgressChange += new AxSHDocVw.DWebBrowserEvents2_ProgressChangeEventHandler(this.axWebBrowser1_ProgressChange);
_axWebBrowser.StatusTextChange += new AxSHDocVw.DWebBrowserEvents2_StatusTextChangeEventHandler(this.axWebBrowser1_StatusTextChange);
_axWebBrowser.TitleChange += new AxSHDocVw.DWebBrowserEvents2_TitleChangeEventHandler(this.axWebBrowser1_TitleChange);
_axWebBrowser.CommandStateChange += new AxSHDocVw.DWebBrowserEvents2_CommandStateChangeEventHandler(this.axWebBrowser1_CommandStateChange);
tabControl1.TabPages.Add(_TabPage);
tabControl1.SelectedTab = _TabPage;
return _axWebBrowser;
}
以上是代码。在 CreateNewWebBrowser()方法中,tabControl1.SelectedTab = _TabPage;这段代码就等于在前台立即激活新建选项卡。
如果我去掉这句话,目的是想让新页面选项卡在后台打开。
这样,是不行的,这样会激活IE浏览器。并在IE浏览器中激活新页面。
我的问题是,如何不用tabControl1.SelectedTab = _TabPage;这句,让新页面和新选项卡在后台打开,焦点还是停留在当前的选项卡中。 同时又不激活IE! --------------------编程问答-------------------- 这个问题其实是有难度的。还请高手出面! --------------------编程问答-------------------- tabControl1.SelectedTab = _TabPage;
去掉是没问题的
--------------------编程问答-------------------- 真的不能去掉,如果去掉,点击链接如果激活新窗口事件,没有tabControl1.SelectedTab = _TabPage;
这个代码,就会激活IE浏览器! --------------------编程问答-------------------- 如果是 用 WebBrowser, NewWindow, 里面有一个
e.Cancel = true; //使外部无法捕获此事件
但是我是用 AxWebBrowser , NewWindow2 里面没有e.Cancel = true; 这个写法 --------------------编程问答-------------------- 测试通过,去掉tabControl1.SelectedTab = _TabPage没有任何关系
--------------------编程问答-------------------- 我测试没通过,而且还会出错! 原本应该新页面打开的链接,不是在新选项卡打开,在原选项卡直接打开 --------------------编程问答--------------------
private void Form1_Load(object sender, EventArgs e)
{
axWebBrowser1.Navigate("http://www.sina.com.cn");
}
private void axWebBrowser1_NewWindow2(object sender, AxSHDocVw.DWebBrowserEvents2_NewWindow2Event e)
{
AxSHDocVw.AxWebBrowser _axWebBrowser = CreateNewWebBrowser();
e.ppDisp = _axWebBrowser.Application;
_axWebBrowser.RegisterAsBrowser = true;
}
private AxSHDocVw.AxWebBrowser CreateNewWebBrowser()
{
AxSHDocVw.AxWebBrowser _axWebBrowser = new AxSHDocVw.AxWebBrowser();
TabPage _TabPage = new TabPage();
_TabPage.Controls.Add(_axWebBrowser);
_axWebBrowser.Dock = DockStyle.Fill;
_axWebBrowser.NewWindow2 += (this.axWebBrowser1_NewWindow2);
tabControl1.TabPages.Add(_TabPage);
return _axWebBrowser;
}
你是不是中了其他代码?
我使用上面精简过的代码,是没问题的
补充:.NET技术 , C#