2010-01-24 131 views
6

拆除边境我有一个WebBrowser控件坐在其周围有刺激性2px的插图看的边界在窗体上。这会导致我的内容被右下角的4像素剪裁,我无法弄清楚如何摆脱它。该控件本身没有任何BorderStyle属性 - 如何删除边框?从WebBrowser控件

见红色区域的屏幕截图:

Make it stop! http://img229.imageshack.us/img229/8342/badbadwebbrowser.gif

我想要的web浏览器看起来像蓝色区域 - 也就是,填写表格,并针对窗体的边缘齐平。

回答

4

IE借鉴,作为对身体标签的默认样式的一部分。在身体元素上设置border:0px,它消失。

值得庆幸的是,这是going away in IE9

+0

良好的通话。我已经重置了边距和填充,但没有删除任何可能在html或body元素上的边框。谢谢! – 2010-01-24 19:27:21

+0

我无法用css解决它。 – 2010-08-16 11:35:20

+0

您可以不添加CSS到页面,或者是一个基于CSS的方法不工作?您可以通过编程方式添加CSS,以便从应用程序中完成此操作。 – 2010-08-18 01:30:44

-1

我无法重现您所讲述的外观。我在在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 = .... 

,无边框显示在三夏...我使用VS 2008 SP1/Windows 7的

也许你应该尝试添加容器内的控制,例如一个小组。

+1

在xp上查看您的表单,您会在问题中看到完全一样的内容。 Win7不显示边框。 – 2010-08-16 11:34:14

+0

@Hasan:它与Windows版本无关。这取决于浏览器版本! – Elmue 2017-08-05 03:50:11

1

WebBrowser控件继承控件类的显示风格。如果你想控制边框的控制风格,你可以使用类似的代码,例如在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;

和重写形式的web浏览器的InitializeComponent项目的创作,这样的:

this.webBrowser1 = new WindowsFormsApplication1.wbExt();
所以,现在
webBrowser1.BorderStyle = BorderStyle.None;
将web浏览器控件中删除任何边界。

+0

感谢您的代码示例。事实证明,我真正的问题在于我加载到控件中的文档,而不是控件本身。 – 2010-01-24 19:33:39

+0

这个答案完全错误。我们在这里讨论的边界是INSIDE浏览器控件不在外面。 – Elmue 2017-08-05 03:48:58

3

我已经解决了相同的问题,将border:none;样式属性添加到元素中。

<html style="border:none;"> 

首先,我试着将它添加到元素,但它没有工作,但它适用于根HTML元素。

在Windows XP上使用WebBrowser对象的IE版本 - 我认为,第6版 - 解释根HTML元素默认有一个边界。如果您可以直接控制WebBrowser中显示的网页,则可以直接将样式属性添加到页面的HTML源代码中 - 就像我一样 - 如果没有,应该有方法以编程方式编辑WebBrowser中的HTML在你的应用程序的一面。

+0

这在IE 9上不起作用。删除那个愚蠢的边界的唯一方法是删除<!DOCTYPE html> – Elmue 2017-08-05 03:47:04