当我在TabPage上添加WebBrowser控件时,它没有边框。 我找不到BorderStyle属性。 如何使控件具有边框? (3D,凹陷,等等)将边框添加到WebBrowser控件
Screenshot http://i47.tinypic.com/2m7dpj4.png
只有你看到其实这里存在控制权的滚动条...
当我在TabPage上添加WebBrowser控件时,它没有边框。 我找不到BorderStyle属性。 如何使控件具有边框? (3D,凹陷,等等)将边框添加到WebBrowser控件
Screenshot http://i47.tinypic.com/2m7dpj4.png
只有你看到其实这里存在控制权的滚动条...
你可以用在Panel的WebBrowser控制和设置Panel.BorderStyle属性。
Panel panel1 = new Panel();
panel1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
panel1.Controls.Add(webbrowser1);
Gumpy的评论,不准确。为您的项目添加一个新类并粘贴下面显示的代码。编译。将新控件从工具栏顶部放到表单上。
using System;
using System.Windows.Forms;
class MyWebBrowser : WebBrowser {
protected override CreateParams CreateParams {
get {
var parms = base.CreateParams;
parms.Style |= 0x800000; // Turn on WS_BORDER
return parms;
}
}
}
其他边框样式也可以,请在SDK中查看WinUser.h。
很好的答案。如果有人对我这样的窗口不熟悉,我的WinUser.h就在这里(可能是Visual Studio放在那里):C:\ Program Files \ Microsoft SDKs \ Windows \ v7.0A \ Include \ – 2010-07-14 23:11:10
首先要知道IE 6单独绘制边框如果指定
< DOCTYPE HTML >或
体{边框样式:插图;边框宽度:2px的;保证金:0像素; }
但是,这不适用于较新的IE版本。
所以,如果你画在C#中的边界,并指定一个DOCTYPE必须设置
HTML,身体{边界:0; }
否则你有两个边界中的IE 6.
汉斯的溶液(设置WS_BORDER)产生难看的黑色边界。
如果你想要一个凹陷的3D边框的最简单的方法是这样的:
protected override CreateParams CreateParams
{
get
{
CreateParams i_Parms = base.CreateParams;
i_Parms.ExStyle |= 0x200; // WS_EX_CLIENTEDGE
return i_Parms;
}
}
的问题是,在凹陷的3D边框使用了直到Windows 2000中但随着XP其中的Uxtheme改变了一些事情。 DLL绘制所有控件,而不是旧的USER32.DLL。 User.h中的所有控件绘制标志都用于Windows 2000,并且自XP以来不再生成兼容Theme的绘画。
那么如何获得看起来像ListBox,ListView,TreeView等XP/Windows 7主题边框(细蓝色或绿色线条)的边框,并在更改主题时更改颜色?
一个简单的方法是在您希望浏览器出现,然后在表格写位置插入表单设计器中一个列表框在VS:
protected override void OnLoad(EventArgs e)
{
....
listBox.IntegralHeight = false;
webBrowser.Parent = listBox;
webBrowser.Dock = DockStyle.Fill;
}
这使得浏览器是一个孩子列表框。列表框绘制边框,内部浏览器绘制Html内容。
这工作完美,看起来与其他主题控件相同的方式,但有一个缺点是,调整窗体大小闪烁更多,因为现在有一个控件被绘制。
完美的解决方案是钩住DrawThemeBackground或DrawThemeEdge手动绘制边框或通过GetThemeColor获取边框颜色并使用System.Drawing.Graphics.DrawRectangle()绘制边框但是这样做很笨拙,试试吧。 (此外,如果用户已关闭主题,则必须执行回退)
这是一种课程:) 但为什么所有控件都具有除webbrowser之外的边框样式? – Pygmy 2009-12-10 00:25:30
网络浏览器是特别的:-) – Kugel 2009-12-10 00:28:49
这是任何没有边框样式属性的控件的方法。我甚至在RichTextBoxes和ComboBoxes上使用过它。 – Isuru 2012-11-21 10:44:02