VB.NET颜色的陷阱。

(粤版/香港文字)

由于要為嚟緊嘅2559科程做准俻工夫;就無意中發现咗一點怪象。又幾怪?就喺换Form嘅BackColor/ForeColor同Button1嘅BackColor/ForeColor程序先後嘞;原來先後會有唔同嘅效果嗰咊~ 小心,小心也。。。

如果用以下嘅代碼,换Form嘅背景于字軆颜色(Button1)同换Button1嘅背景于字軆颜色(Button2)。

Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles Button1.Click

    
' 更换Form1背景与字軆颜色。
    Me.BackColor = System.Drawing.Color.SeaGreen
    Me.ForeColor 
= System.Drawing.Color.Snow

End Sub


Private Sub Button2_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles Button2.Click

    
' 更换Button1背景与字軆颜色。
    Button1.BackColor = System.Drawing.Color.Salmon
    Button1.ForeColor 
= System.Drawing.Color.Yellow

End Sub


當按Button1後,我哋就睇到整個Form1嘅背景都變咗SeaGreen色;而字軆就變咗Snow色(包括Button1同Button2)。如圖一。


圖一。

然後再按Button2,我哋就睇到整個Button1嘅背景都變咗Salmon色;而字軆就變咗Yellow色(包括Button1)。如圖二。


圖二。

你一定講冇乜唔妥吖。。。如常達到所愿嘅效果。但。。。但喺,如果我哋只按Button2而唔按Button1;就會有圖三嘅效果嘞。


圖三。

問題在于點解轉换Form1嘅背景于字軆颜色會搞到連Button1嘅颜色都一齐變埋吖?哈哈。。。大概你冇察覺到呢。。。個關键就係喺嗰Button1嘅Properties(Background)嘞(圖四)!一般人都唔會去换,只會用VS.NET默認設定值數;亦即喺用“Control”色;同Form1嘅Background默認設定值數完全一样。一旦你更换過VS.NET嘅默認設定值數就冇事嘞。

 
圖四。

posted on 2005-02-23 23:03  克仔  阅读(2114)  评论(12编辑  收藏  举报