我有一个WebBrowser控件坐在一个Form上,它周围有一个恼人的2px嵌入式边框。它导致我的内容被右侧和底部的4像素剪辑,我无法弄清楚如何摆脱它。控件本身没有任何BorderStyle属性 - 如何删除边框?
查看截屏中的红色区域:
Make it stop! http://img229.imageshack.us/img229/8342/badbadwebbrowser.gif
我希望WebBrowser看起来像蓝色区域 - 也就是说,填充Form并与Form的边缘齐平。
答案 0 :(得分:4)
IE将其绘制为body标签上默认样式的一部分。在body元素上设置border:0px
,它就会消失。
谢天谢地,这是going away in IE9。
答案 1 :(得分:3)
我通过在 html 元素中添加border:none;
样式属性解决了同样的问题。
<html style="border:none;">
首先我尝试将其添加到 body 元素中,但它不起作用,但它适用于root html 元素。
Windows XP上用于WebBrowser对象的IE版本 - 我认为版本6 - 默认将根html元素解释为具有边框。如果您可以直接控制WebBrowser中显示的Web页面,您可以直接将样式属性添加到页面的HTML源代码中 - 就像我一样 - 如果没有,应该有一种方法可以编程方式编辑WebBrowser中的HTML在你的申请方面。
答案 2 :(得分:2)
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;
并在表单的InitializeComponent中重写webBrowser项的创建,如下所示:
this.webBrowser1 = new WindowsFormsApplication1.wbExt();
因此,现在webBrowser1.BorderStyle = BorderStyle.None;
将从webBrowser控件中删除任何边框。
答案 3 :(得分:-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 = ....
并且webcontrol显示没有边框...我正在使用VS 2008 SP1 / Windows 7。
也许您应该尝试在容器中添加控件,例如小组。