Avatar billede elmoe Juniormester
15. februar 2011 - 22:50 Der er 8 kommentarer og
1 løsning

C# definer variabelnavn dynamisk

Mit billede hedder _1 og er oprettet som en resource. Hvis jeg vil loade mit billede i mit pictureBox1 objekt kan jeg gøre det således:

pictureBox1.Image = Resources._1;

Forestil jer at vi har tre resourcer og tre pictureboxes.

Jeg har ikke kunne finde et simpelt eksempel på, hvad jeg gør når jeg vil hente tre billeder ind i tre forskellige bokse automatisk f.eks. vha. en foreach.

Det her virker f.eks. ikke:

foreach(int i = 1; i < 4; i++)
{
  pictureBox+i.Image = Resources._+i;
}

Jeg vil være meget taknemmelig, hvis der er en der kan give mig et simpelt eksempel på hvordan jeg gør det.
Avatar billede arne_v Ekspert
15. februar 2011 - 22:56 #1
Du skal have både dine PictureBox og dine ressourcer over i arrays/lister.
Avatar billede elmoe Juniormester
15. februar 2011 - 23:03 #2
Nårh ja.. Ser lige om jeg kan finde en god løsning på det og vender tilbage :-)
Avatar billede elmoe Juniormester
15. februar 2011 - 23:28 #3
arne_v:
Har prøvet på lidt af hvert og jeg nærmer mig, men jeg kan stadig ikke få den enkelte PictureBox i min ArrayList til at blive ændret. Alt virker lige pånær der hvor jeg prøver at tildele værdien til boksene. Har du en idé til hvordan det kan skrives? picture_boxes[i] virker ikke. Lige nu ser mit script sådan her ud:

ArrayList picture_boxes = new ArrayList();

picture_boxes.Add(pictureBox1.Image);
picture_boxes.Add(pictureBox2.Image);
picture_boxes.Add(pictureBox3.Image);

for (int i = 1; i <= 3; i++)
{
  picture_boxes[i] = (Bitmap)Resources.ResourceManager.GetObject("_" + i);
}
Avatar billede arne_v Ekspert
15. februar 2011 - 23:36 #4
prøv med:

picture_boxes[i].Image = ...
Avatar billede elmoe Juniormester
15. februar 2011 - 23:38 #5
Den gik desværre ikke.

Error    1    'object' does not contain a definition for 'Image' and no extension method 'Image' accepting a first argument of type 'object' could be found (are you missing a using directive or an assembly reference?)    C:\Users\Johnny Drud\Documents\Visual Studio 2010\Projects\PokerFriends\WindowsFormsApplication1\MainForm.cs    309    38    PokerFriends
Avatar billede arne_v Ekspert
15. februar 2011 - 23:44 #6
Erstat ArrayList med List<PictureBox>.
Avatar billede johny Nybegynder
16. februar 2011 - 07:35 #7
Det er faktisk også muligt at lokalisere billederne med deres x:navn, men er det en winforms eller en WPF/Silverlight/Phone 7 (bare noget med XAML) applikation?
Arne_v's løsning, er dog en der virker på et helt generelt scenarie, og også derfor den vej jeg oftest ville gå.
Avatar billede elmoe Juniormester
16. februar 2011 - 22:04 #8
Endnu en gang tak arne_v.
Det var lige hvad jeg skulle bruge for at komme videre :-)

Du må meget gerne give et svar.
Avatar billede arne_v Ekspert
16. februar 2011 - 22:45 #9
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester