[VB.NET 2005] GDI+ Label backcolor

Pagina: 1
Acties:

  • Rhapsody
  • Registratie: Oktober 2002
  • Laatst online: 14:07

Rhapsody

In Metal We Trust

Topicstarter
Hallo,


Na flink spelen met GDI+ in VB.NET 2005 stuit ikop een probleempje. Ik heb een menu item zoals op de afbeelding te zien is.
Afbeeldingslocatie: http://www.sqicit.nl/temp/scr.png
Wanneer ik daar met mijn muis overheen ga moet het item opnieuw gepaint worden met andere kleuren. Maar wat ik ook probeer, het label wat erop staat werkt niet mee.

Dit label heeft een transparante achtergrondkleur dus dat zou geen probleem moeten zijn.

in de load van mijn form gebruik ik de volgende code:
Visual Basic .NET:
1
2
3
4
5
6
        Me.SetStyle(System.Windows.Forms.ControlStyles.OptimizedDoubleBuffer, True)
        Me.SetStyle(System.Windows.Forms.ControlStyles.AllPaintingInWmPaint, False)
        Me.SetStyle(System.Windows.Forms.ControlStyles.ResizeRedraw, True)
        Me.SetStyle(System.Windows.Forms.ControlStyles.UserPaint, True)
        Me.SetStyle(System.Windows.Forms.ControlStyles.SupportsTransparentBackColor, True)
        MyBase.BackColor = System.Drawing.Color.Transparent


Heeft er iemand een idee wat ik ben vergeten?

🇪🇺 pro Europa!


  • Rhapsody
  • Registratie: Oktober 2002
  • Laatst online: 14:07

Rhapsody

In Metal We Trust

Topicstarter
Niemand?

Ik heb nog steeds niet kunnen achterhalen waarom de backColor van het label niet meege'paint' wordt. Ik werk met de Beta nog, misschien dat het een bug is?

🇪🇺 pro Europa!


  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Stop AI Slop

Bij VB6 kon je een label op transparant zetten. Kan dat bij jou niet?

edit:

Stom, niet goed gelezen, sorry.

[ Voor 28% gewijzigd door CodeCaster op 17-11-2005 09:34 ]

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


  • Rhapsody
  • Registratie: Oktober 2002
  • Laatst online: 14:07

Rhapsody

In Metal We Trust

Topicstarter
CodeCaster schreef op donderdag 17 november 2005 @ 09:25:
Bij VB6 kon je een label op transparant zetten. Kan dat bij jou niet?
ja dat kan inderdaad, en dat heb ik ook gedaan. Maar dat lijkt niets uit te maken.

🇪🇺 pro Europa!


  • CodeIT
  • Registratie: Juni 2002
  • Laatst online: 21:31

CodeIT

Code IT

Gebruik je misschien een ToolStripStatusLabel ipv een gewoon label? Daar heb ik namelijk ook het probleem mee dat deze niet mee kleuren/transparant zijn.

  • Rhapsody
  • Registratie: Oktober 2002
  • Laatst online: 14:07

Rhapsody

In Metal We Trust

Topicstarter
Nee ik gebruik een standaard label.

Het control is een usercontrol welke eigenlijk enkel een label bevat.

🇪🇺 pro Europa!


  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Stop AI Slop

Ik heb deze link gevonden, is dat niks?

[ Voor 22% gewijzigd door CodeCaster op 17-11-2005 09:39 ]

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


  • Rhapsody
  • Registratie: Oktober 2002
  • Laatst online: 14:07

Rhapsody

In Metal We Trust

Topicstarter
Dank voor de link, die had ik nog niet gevonden.

Helaas is dat niet wat ik zoek. In de code staat dit:
Visual Basic .NET:
1
2
        Label1.Parent = PictureBox1
        Label1.BackColor = Color.Transparent

Dat heb ik reeds geprobeerd. Als je een statische afbeelding als achtergrond neemt werkt dat wel, maar op het moment dat je zelf bij mouseenter/mouseleave de achtegrond gaan 'repainten' blijkt het niet te werken.

edit: op ExpertsExchange vond ik deze reactie:
quote: ExpertsExchange
This is somewhat related to how Windows Forms and controls in .NET does their transparency.

For controls like labels and such, it paints the backcolor of your controls the SAME as the form's backcolor (or the form's backimage, if set), instead of simply not painting the control's background at all. Problem with this, is that it will not take into account of any controls beneath your current transparent control. Hence if you have any other controls with other colors or texts, it will be covered by the supposedly transparent control, instead of simply showing through.
Ziet er dus naar uit dat het gewoon niet mogelijk is, en dat ik een andere oplossing moet vinden door bijvoorbeeld de backcolor van het label te painten

[ Voor 40% gewijzigd door Rhapsody op 17-11-2005 09:46 ]

🇪🇺 pro Europa!


  • CodeIT
  • Registratie: Juni 2002
  • Laatst online: 21:31

CodeIT

Code IT

Aangezien je toch aan het tekenen bent met GDI, waarom teken je dan ook niet de tekst. Dus ipv een label te gebruiken "DrawString" gebruiken.

  • Rhapsody
  • Registratie: Oktober 2002
  • Laatst online: 14:07

Rhapsody

In Metal We Trust

Topicstarter
JanTenHove schreef op donderdag 17 november 2005 @ 10:40:
Aangezien je toch aan het tekenen bent met GDI, waarom teken je dan ook niet de tekst. Dus ipv een label te gebruiken "DrawString" gebruiken.
Denk inderdaad dat ik dat alternatief maar moet gebruiken.

🇪🇺 pro Europa!

Pagina: 1