如何在带添加关闭按钮的TabControl新建标签中添加指定大小WebBrowser控件
解决方案
你在完成WebBrowser的实例化、尺寸配置后,直接将控件添加到新生成的TabPage的Controls集合中即可实现需求,修改后的逻辑如下:
this.tabControl1.TabPages.Insert(lastIndex, "New Tab"); this.tabControl1.SelectedIndex = lastIndex; this.tabControl1.TabPages[lastIndex].UseVisualStyleBackColor = true; WebBrowser wbb = new WebBrowser(); wbb.Size = new Size(547, 201); // 新增以下代码将WebBrowser添加到标签页 this.tabControl1.TabPages[lastIndex].Controls.Add(wbb); // 如果需要默认打开某个页面,可额外加这行 // wbb.Navigate("https://www.example.com");
完整修改后的事件代码如下:
private void tabControl1_MouseDown(object sender, MouseEventArgs e) { var lastIndex = this.tabControl1.TabCount - 1; if (this.tabControl1.GetTabRect(lastIndex).Contains(e.Location)) { this.tabControl1.TabPages.Insert(lastIndex, "New Tab"); this.tabControl1.SelectedIndex = lastIndex; this.tabControl1.TabPages[lastIndex].UseVisualStyleBackColor = true; WebBrowser wbb = new WebBrowser(); wbb.Size = new Size(547, 201); // 将WebBrowser控件加入标签页的控件集合 this.tabControl1.TabPages[lastIndex].Controls.Add(wbb); } else { for (var i = 0; i < this.tabControl1.TabPages.Count; i++) { var tabRect = this.tabControl1.GetTabRect(i); tabRect.Inflate(-2, -2); var closeImage = Properties.Resources.Close; var imageRect = new Rectangle( (tabRect.Right - closeImage.Width), tabRect.Top + (tabRect.Height - closeImage.Height) / 2, closeImage.Width, closeImage.Height); if (imageRect.Contains(e.Location)) { this.tabControl1.TabPages.RemoveAt(i); break; } } } }
内容的提问来源于stack exchange,提问作者VWWE
相关产品推荐
相关产品推荐

