VB.NET颜色的陷阱。
(粤版/香港文字)
由于要為嚟緊嘅2559科程做准俻工夫;就無意中發现咗一點怪象。又幾怪?就喺换Form嘅BackColor/ForeColor同Button1嘅BackColor/ForeColor程序先後嘞;原來先後會有唔同嘅效果嗰咊~ 小心,小心也。。。
如果用以下嘅代碼,换Form嘅背景于字軆颜色(Button1)同换Button1嘅背景于字軆颜色(Button2)。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal 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.Object, ByVal e As System.EventArgs) Handles Button2.Click
' 更换Button1背景与字軆颜色。
Button1.BackColor = System.Drawing.Color.Salmon
Button1.ForeColor = System.Drawing.Color.Yellow
End Sub
' 更换Form1背景与字軆颜色。
Me.BackColor = System.Drawing.Color.SeaGreen
Me.ForeColor = System.Drawing.Color.Snow
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal 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嘅默認設定值數就冇事嘞。
圖四。