Ga naar inhoud

[C#] Dynamische achtergrond van button


anoniem

Aanbevolen berichten

Goedemiddag, Ik ben bezig met dynamische buttons, en elke button heeft een andere achtergrond nodig. De plaatjes staan in me resource en op deze manier haal ik ze eruit: [code:1:97442f9ed7]KlasButton.BackgroundImage = global::WindowsFormsApplication1.Resource.ResourceManager.GetObject(Convert.ToString(OdbcDR[1]));[/code:1:97442f9ed7] Ik krijg dan de foutmelding: [quote:97442f9ed7]Error 1 Cannot implicitly convert type 'object' to 'System.Drawing.Image'. An explicit conversion exists (are you missing a cast?) [/quote:97442f9ed7] De plaatjes naam haal ik uit de database en convert ik dus naar een string. Omdat GetObject een string nodig heeft. Waarom zegt hij nu dat het een object is? Bedankt!
Link naar reactie
[quote:6f9313e1d0="DarkCrusader"] Waarom zegt hij nu dat het een object is?[/quote:6f9313e1d0] Get[b:6f9313e1d0]Object[/b:6f9313e1d0], de naam van de functie zegt het al: je krijgt een object terug. Deze code zou moeten werken: [code:1:6f9313e1d0]KlasButton.BackgroundImage = (System.Drawing.Image)global::WindowsFormsApplication1.Resource.ResourceManager.GetObject(Convert.ToString(OdbcDR[1]));[/code:1:6f9313e1d0]Hiermee geef je aan dat het object wat opgehaald wordt met GetObject van het type System.Drawing.Image is.
Link naar reactie
[quote:78724d8a9f="DarkCrusader"]Ok het werkt. Maar "(System.Drawing.Image)" maakt er toch geen string van? Of loop ik nu scheef te kijken.[/quote:78724d8a9f]BackgroundImage is ook geen string, maar een object van het type System.Drawing.Image. Daarom wordt er ook een object van dat type verwacht. Ik denk dat je een paar dingen door elkaar hebt gehaald: De functie GetObject verwacht een parameter van het type String. Die heb je dus goed geconverteerd. Wat de functie teruggeeft is een object van het type Object. De compiler verwacht echter een object van het type System.Drawing.Image wanneer je een achtergrondplaatje wil zetten via KlasButton.BackgroundImage. De compiler kan niet zomaar een object van het type Object naar een object van het type Image converteren (impliciet converteren). Dat moet jij als programmeur dus aangeven door voor de call naar GetObject aan te geven via [b:78724d8a9f](System.Drawing.Image)[/b:78724d8a9f] dat het object dat door deze functie wordt geretourneerd van het type Image is (expliciet converteren).
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...