DevAdmin Blog

Blog di Ermanno Goletto (Microsoft MVP Directory Services - MCITP - MCTS - MCSA - MCP)
posts - 886, comments - 447, trackbacks - 13

My Links

News

Avatar

Curriculum Vitae

Visualizza il profilo di Ermanno Goletto su LinkedIn


Il contenuto di questo blog e di ciascun post viene fornito “così come é”, senza garanzie, e non conferisce alcun diritto. Questo blog riporta il mio personale pensiero che non riflette necessariamente il pensiero del mio datore di lavoro.

Logo Creative Commons Deed


Logo SysAdmin.it SysAdmin.it Staff


Logo TechNet Forum TechNet Italia @ForumTechNetIt Follow TechNet Forum on Twitter


Logo MVP


Ermanno Goletto Follow ermannog on Twitter

Article Categories

Archives

Post Categories

Blogs

Friends

Knowledge Base

MVP Sites

Resources

Label traparente su Picturebox

Se posizioniamo una Label su una Picturebox e impostiamo la proprietà BackColor della Label a System.Drawing.Color.Transparent per renderla traparente notiamo che non diventa trasparente rispetto alla Picturebox.

Il motivo di questo comportamento lo troviamo su MSDN Proprietà Control.BackColor:

La proprietà BackColor non supporta i colori trasparenti a meno che il bit di stile di ControlStyles.SupportsTransparentBackColor non sia impostato su true.

La proprietà BackColor è una proprietà di ambiente. Una proprietà di ambiente è una proprietà di un controllo che, se non impostata, viene recuperata dal controllo padre. Per impostazione predefinita, a un controllo Button sarà associata, ad esempio, la stessa proprietà BackColor del controllo Form padre. Per ulteriori informazioni sulle proprietà di ambiente, vedere i cenni preliminari sulla classe AmbientProperties o sulla classe Control.

La prima condizione è verificata, la seconda però ci indica che la Label sarà traparente rispetto al Parent che in questo caso è la Form, infatti il colore della Label rimane quello impostato per il BackColor della Form.

Per risolvere possiamo però impostare il Picturebox come Parent della Label per esempio usando questo codice nella Load della Form:

 

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     Me.Label1.Parent = Me.PictureBox1
     Me.Label1.Top = Me.Label1.Top - Me.PictureBox1.Top
     Me.Label1.Left = Me.Label1.Left - Me.PictureBox1.Left
End Sub

Print | posted on Friday, April 29, 2005 9:52 AM | Filed Under [ Code, Snippets & Scripts Tips .NET ]

Feedback

No comments posted yet.

Post Comment

Title  
Name  
Email
Url
Comment   
Please add 4 and 7 and type the answer here:

Powered by:
Powered By Subtext Powered By ASP.NET