2011-07-10 248 views

回答

31

您可以將表單中的BackColor設置爲不常見的顏色(如Color.Magenta),然後將表單的TransparencyKey屬性設置爲相同的顏色。然後,將FormBorderStyle設置爲None

當然,這只是簡單快捷的解決方案。控件邊緣很醜,你必須不斷改變你添加的新控件的背景顏色(如果它們是按鈕或類似的東西)以及其他一些問題。

這真的取決於你想達到什麼。它是什麼?如果你想製作一個小工具,有更好的方法。如果您需要圓角或自定義背景,則有更好的方法。所以請提供一些更多的信息,如果TransparencyKey是不是你想的那麼多。

12

將下面的形式的構造:

public Form1() 
{ 
    this.TransparencyKey = Color.Turquoise; 
    this.BackColor = Color.Turquoise; 
} 
+3

或更高版本:TransparencyKey = BackColor; – DuckSoy

+0

或更好:this.TransparencyKey = this.BackColor = Color.Turquoise; – Drarig29

+0

這種方法使邊緣變得醜陋。特別是當你有陰影時。 –

1

一個簡單的解決方案,使透明背景在一個winform是覆蓋OnPaintBackground方法是這樣的:

protected override void OnPaintBackground(PaintEventArgs e) 
{ 
//empty implementation 
} 

(請注意,base.OpaintBackground(e)已從函數中刪除)

+4

但是,這只是繪製一個完全黑色的背景... – Ryan

+0

這並不繪製一個完全黑色的背景。如果您重寫此方法並且不調用基類方法,則不會將任何內容繪製爲背景。三個人(包括我自己)已經對此進行了測試,並且適用於所有人。 –

+0

你使用哪個操作系統? – Ryan