从WebBrowser控件中删除边框

我有一个WebBrowser控件坐在一个Form上,它周围有一个刺激性的2px嵌入边框。 这导致我的内容被右侧和底部的4像素剪辑,我无法弄清楚如何摆脱它。 控件本身没有任何BorderStyle属性 – 如何删除边框?

查看屏幕截图中的红色区域:

让它停下来! http://img229.imageshack.us/img229/8342/badbadwebbrowser.gif

我希望WebBrowser看起来像蓝色区域 – 也就是说,填充Form并与Form的边缘齐平。

IE将其绘制为body标签上默认样式的一部分。 在body元素上设置border:0px并且它会消失。

谢天谢地,这在IE9中消失了 。

我通过添加border:none;解决了同样的问题border:none; 将style属性放入html元素中。

  

首先,我尝试将其添加到body元素中,但它不起作用,但它适用于root html元素。

在Windows XP上用于WebBrowser对象的IE版本 – 我认为版本6 – 默认将根html元素解释为具有边框。 如果您可以直接控制WebBrowser中显示的Web页面,您可以直接将样式属性添加到页面的HTML源代码中 – 就像我一样 – 如果没有,应该有一种方法可以编程方式编辑WebBrowser中的HTML在您的申请方面。

WebBrowser控件从控件类inheritance显示样式。 如果要控制边框控件样式,可以使用类似的代码,例如在Form.Designer.cs中:

 using System; using System.ComponentModel; using System.Windows.Forms; public class wbExt : System.Windows.Forms.WebBrowser { private BorderStyle _borderStyle; [ Category("Appearance"), Description("The border style") ] public BorderStyle BorderStyle { get { return _borderStyle; } set { _borderStyle = value; this.RecreateHandle(); Invalidate(); } } protected override CreateParams CreateParams { get { const int WS_BORDER = 0x00800000; const int WS_EX_STATICEDGE = 0x00020000; CreateParams cp = base.CreateParams; switch (_borderStyle) { case BorderStyle.FixedSingle: cp.Style |= WS_BORDER; break; case BorderStyle.Fixed3D: cp.ExStyle |= WS_EX_STATICEDGE; break; } return cp; } } public wbExt() { } } 

现在,您可以在Form类中更改生成的代码。

 private wbExt webBrowser1; 

并在表单的InitializeComponent中重写webBrowser项的创建,如下所示:

 this.webBrowser1 = new WindowsFormsApplication1.wbExt(); 

所以,现在

 webBrowser1.BorderStyle = BorderStyle.None; 

将从webBrowser控件中删除任何边框。

我无法再现你所讲述的外表。 我在Form1.Designer.cs中的代码是:

  this.webBrowser1.Location = new System.Drawing.Point(0, 0); this.webBrowser1.MinimumSize = new System.Drawing.Size(20, 20); this.webBrowser1.Name = "webBrowser1"; this.webBrowser1.ScrollBarsEnabled = false; this.webBrowser1.Size = new System.Drawing.Size(141, 125); this.webBrowser1.TabIndex = 0; this.webBrowser1.Uri = .... 

并且webcontrol显示没有边框…我正在使用VS 2008 SP1 / Windows 7。

也许您应该尝试在容器内添加控件,例如面板。