C WinForm開發 如何將控制項背景色設定為透明

2021-10-09 16:44:18 字數 1124 閱讀 8343

在專案開發中,有時需要將控制項的背景顏色設定為透明,比如label控制項。那麼,如何將控制項的背景顏色設定為透明?是不是只要將控制項的backcolor屬性設為transparent即可?答案是否定的。想要解決這個問題,首先要了解:在c#中,什麼叫做透明。

在c#中,所謂的透明就是將父控制項表面的顏色設定為自己的背景顏色。因此,在winform開發中除了要將控制項的backcolor屬性設為transparent,還要修改控制項的parent屬性。

以picturebox控制項上label控制項為例,設定label控制項的背景色透明,可以看到picturebox控制項的背景色。

設定label控制項的backcolor屬性為transparent:

label1.backcolor = color.transparent;
設定label控制項的parent屬性為picturebox:

label1.parent = picturebox1;
設定label控制項的location屬性,這裡是將label控制位置設於picturebox控制項的左上角:

label1.location =

newpoint(0

,0);

效果如下:

問:為什麼將label控制項的背景色設為透明,透過背景看到的不是picturebox控制項的背景色,而是form窗體的背景色?

答:label控制項的父控制項預設是form窗體,因此需要更改label控制項的parent屬性為picturebox。

問:為什麼將label控制項的parent屬性設定為picturebox後,程式執行時發現label控制項不見了,或者顯示的位置不在拖放的位置?

答:label控制項的父控制項預設是form窗體,所以控制項拖放時的location屬性是相對於form窗體的左上角。當程式執行時,label父控制項變更為picturebox控制項,那麼一開始拖放的location屬性將是相對於picturebox左上角,即導致label控制項的顯示位置不在最初拖放位置,甚或消失不見,因此需要根據情況更改label控制項的location屬性。

如何 將控制項鎖定到 Windows 窗體

當設計 windows 應用程式的使用者介面 ui 時,正確定位控制項後可將其鎖定,以免在設定其他屬性時意外移動它或調整其大小。另外,可一次鎖定或取消鎖定窗體上的所有控制項,這對於有許多控制項的窗體很有幫助,也可以取消鎖定個別控制項。將所有控制項放在窗體上的所需位置後,可就地鎖定它們以防止錯誤的移動...

iOS開發 如何將 Array 儲存在本地

常用的方法是這個 func writetofile path string,atomically useauxiliaryfile bool bool 然而 writetofile 這個函式卻只屬於 nsarray 假如我自定義了乙個person類來寫人,然後用陣列來儲存person物件,那麼我將把...

如何將表單居中顯示 如何將重複資料突出顯示?

將 中一列資料中重複的,使用特殊顏色突出顯示或者使用一些符號標記出來。例如 乙個 商,可以邀請別的 商加入成為聯合體,報表要顯示所有 商,然後 商最後一列顯示所有聯合體,當聯合體 商跟別的 商重複時要突出顯示,並且加星號。用設計器自帶 demo 資料來源中的訂單明細資料表,使用嚮導建立一張分組報表,...