[C#][VB.NET]按鈕背景設定透明的奇怪現象

  • 31858
  • 0
  • 2010-08-02

Button 背景設定為透明,但是有些電腦可以讓 Button 背景變透明且可以顯示出 Form 的底圖,有些電腦則不行?

在藍色小舖上遇到的神奇問題,問題簡述如下

請問如何將按鈕變成透明背景,且能與Form的背景結合,試過將backcolor設為transparent但始終行不通
其他電腦開啟程式都是control底色,只有一部電腦能顯示透明

實際寫程式來測試看看,在Form內放了Button,並且設定Button 的BackColor = Transparent

        private void Form1_Load(object sender, EventArgs e)
        {
            button1.BackColor = Color.Transparent;
        }

程式執行結果,按鈕變透明且看到Form的圖片,那發問者為什麼會有此問題?

而我從發問者這句話 " 其他電腦開啟程式都是control底色,只有一部電腦能顯示透明 " 聯想到,會不會跟佈景有關,我目前的佈景主題是設定為 Windows 傳統配色,而我嘗試將佈景主題換成 Windows XP,結果如下,Button真的就不透明了

再切換回 Windows 傳統配色,按鈕又變透明了

那有什麼方法可以在 不同的佈景主題下,按鈕都能透明呢? 最後我測試出來的解決方式是 另外還要去設定 Button 的 FlatStyle 屬性 設定為 FlatStyle.Popup 即可

        private void Form1_Load(object sender, EventArgs e)
        {
            button1.BackColor = Color.Transparent;
            button1.FlatStyle = FlatStyle.Popup;
        }

執行結果如下,Button 又可以顯示 Form 的底圖了

參考

http://www.blueshop.com.tw/board/show.asp?subcde=BRD20090315225812VKS