扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:zhangjidong 来源:博客园 2007年11月11日
关键字:
#region//初始化 /// <summary> /// 初始化 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Form1_Load(object sender, EventArgs e) { initMainForm(); } /// <summary> /// 初始化浏览器 /// </summary> private void initMainForm() { TabPage mypage = new TabPage(); WebBrowser tempBrowser = new WebBrowser(); tempBrowser.Navigated += new WebBrowserNavigatedEventHandler(tempBrowser_Navigated); tempBrowser.NewWindow += new CancelEventHandler(tempBrowser_NewWindow); tempBrowser.StatusTextChanged += new EventHandler(tempBrowser_StatusTextChanged); tempBrowser.ProgressChanged += new WebBrowserProgressChangedEventHandler(tempBrowser_ProgressChanged); tempBrowser.Dock = DockStyle.Fill; tempBrowser.GoHome();//和新建空白页不同 mypage.Controls.Add(tempBrowser); tabControl1.TabPages.Add(mypage); } #endregion |
#region//临时浏览器事件 /// <summary> /// 临时浏览器状态变化事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void tempBrowser_StatusTextChanged(object sender, EventArgs e) { WebBrowser myBrowser = (WebBrowser)sender; if (myBrowser != getCurrentBrowser()) { return; } else { toolStripStatusLabel1.Text = myBrowser.StatusText; } } /// <summary> /// 在当前页面上重新定向 /// </summary> /// <param name="address">url</param> private void newCurrentPageUrl(String address) { getCurrentBrowser().Navigate(getUrl(address)); } /// <summary> /// 临时浏览器产生新窗体事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void tempBrowser_NewWindow(object sender, CancelEventArgs e) { //获取触发tempBrowser_NewWindow事件的浏览器 WebBrowser myBrowser = (WebBrowser)sender; //获取触发tempBrowser_NewWindow事件的浏览器所在TabPage TabPage mypage = (TabPage)myBrowser.Parent; //通过StatusText属性获得新的url string NewURL = ((WebBrowser)sender).StatusText; //生成新的一页 TabPage TabPageTemp = new TabPage(); //生成新的tempBrowser WebBrowser tempBrowser = new WebBrowser(); //临时浏览器定向到新的url tempBrowser.Navigate(NewURL); tempBrowser.Dock = DockStyle.Fill; //为临时浏览器关联NewWindow等事件 tempBrowser.NewWindow += new CancelEventHandler(tempBrowser_NewWindow); tempBrowser.Navigated += new WebBrowserNavigatedEventHandler(tempBrowser_Navigated); tempBrowser.ProgressChanged += new WebBrowserProgressChangedEventHandler(tempBrowser_ProgressChanged); tempBrowser.StatusTextChanged+=new EventHandler(tempBrowser_StatusTextChanged); //将临时浏览器添加到临时TabPage中 TabPageTemp.Controls.Add(tempBrowser); //将临时TabPage添加到主窗体中 this.tabControl1.TabPages.Add(TabPageTemp); //使外部无法捕获此事件 e.Cancel = true; } /// <summary> /// 临时浏览器定向完毕 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void tempBrowser_Navigated(object sender, WebBrowserNavigatedEventArgs e) { tscbUrl.Text = getCurrentBrowser().Url.ToString(); WebBrowser mybrowser = (WebBrowser)sender; TabPage mypage=(TabPage)mybrowser.Parent; //设置临时浏览器所在tab标题 mypage.Text= newstring(mybrowser.DocumentTitle); } #endregion |
#region//tabControl1事件 /// <summary> /// 切换tab /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void tabControl1_SelectedIndexChanged(object sender, EventArgs e) { WebBrowser mybor = (WebBrowser)tabControl1.SelectedTab.Controls[0]; if (mybor.Url != null) { //地址输入框 tscbUrl.Text = mybor.Url.ToString(); tabControl1.SelectedTab.Text = newstring(mybor.DocumentTitle); } else { tscbUrl.Text = "about:blank"; tabControl1.SelectedTab.Text = "空白页"; } setStatusButton(); } /// <summary> /// 关闭当前tab /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void tabControl1_DoubleClick(object sender, EventArgs e) { //仅仅剩下一个tab时返回 if (tabControl1.TabPages.Count <= 1) { tabControl1.SelectedTab.Text = "空白页"; getCurrentBrowser().Navigate("about:blank"); } else { //先将tabControl1隐藏然后remove掉目标tab(如果不隐藏则出现闪烁,即系统自动调转到tabControl1的第一个tab然后跳会。)最后显示tabControl1。 tabControl1.Visible = false; WebBrowser mybor = getCurrentBrowser(); //释放资源 mybor.Dispose(); mybor.Controls.Clear(); this.tabControl1.TabPages.Remove(this.tabControl1.SelectedTab); //重新设置当前tab tabControl1.SelectedTab = tabControl1.TabPages[tabControl1.TabPages.Count - 1]; tabControl1.Visible = true; } } #endregion |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者