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!
{
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!
解决方案 »
- SharpDevelop 开发效果如何?该产品是否稳定?能否作为商业程序开发工具?
- 进制转换问题,求助阿= = !!!!!!!
- 求助!c#中如何逐个读入字符?
- C# 遍历某个文件夹下的特定文件
- 问一个sql查询语句。谢谢谢谢
- 希望各位帮帮忙
- 一个程序调用一个函数,如果这个函数内(catch)出错,怎样退出整个程序?
- MainFrom怎么没改变
- C#用什么算法可以判断出一段字符串里包含是否包含固定的内容?
- 安装VS2003格了又装,装了又格,折腾了一个多月还是不行,朋友们有空入来看看不妨
- C#使用Stream合并Bitmap
- 在 System.Net.Sockets.SocketException 中第一次偶然出现的“System.dll”类型的异常
去掉是没问题的
这个代码,就会激活IE浏览器!
但是我是用 AxWebBrowser , NewWindow2 里面没有e.Cancel = true; 这个写法
{
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;
}你是不是中了其他代码?
我使用上面精简过的代码,是没问题的