anoniem Geplaatst: 6 september 2008 Delen Geplaatst: 6 september 2008 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! Quote Link naar reactie
anoniem Geplaatst: 6 september 2008 Auteur Delen Geplaatst: 6 september 2008 [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. Quote Link naar reactie
anoniem Geplaatst: 6 september 2008 Auteur Delen Geplaatst: 6 september 2008 Ok het werkt. Maar "(System.Drawing.Image)" maakt er toch geen string van? Of loop ik nu scheef te kijken. Quote Link naar reactie
anoniem Geplaatst: 6 september 2008 Auteur Delen Geplaatst: 6 september 2008 [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). Quote Link naar reactie
anoniem Geplaatst: 6 september 2008 Auteur Delen Geplaatst: 6 september 2008 Oh ja, [url=http://msdn.microsoft.com/en-us/library/ms173105.aspx]hier[/url] vind je wat meer informatie over type conversie in C# Quote Link naar reactie
anoniem Geplaatst: 7 september 2008 Auteur Delen Geplaatst: 7 september 2008 Hartelijk bedankt! :lol: Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen