當我在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