Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di stan83
    Registrato dal
    May 2003
    Messaggi
    106

    [c#] attributo "variabile"

    Ciao a tutti,
    è il primo giorno che mi avvicino a C# ed ho già un problema che nn riesco a risolvere.

    Sicuramente è una stupidaggine, ma nn riesco proprio. LA situazione è la seguente:

    codice:
    private void metodo1 (...)
    { ...
    this.metodo2("PictureBox1");
    ...
    }
    
    private void metodo2 (string picturebox)
    {
    this.picturebox .Image.Save(....)
    }
    In poche parole voglio che l'attributo "picturebox" sia una variabile, passata da un altro metodo. Ma come ho fatto sopra chiaramente lui considera picturebox come attributo della classe e non lo trova.

    In PHP avrei semplicemente usato this.$picturebox.Image.Save (...)

    Come faccio in C#?

    Spero di nn aver detto castronerie, altrimenti chiedo perdono :P
    Mai fare oggi quello che puoi fare domani.

  2. #2
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Se PictureBox1 è il nome del controllo che hai sul form allora puoi fare così :
    codice:
    private void metodo2(string picName) 
    {
    	// Ottieni il controllo con quel nome 
    	// dall'insieme dei controlli
    	// del form. Prendi il primo che ti ritorna,
    	// potrebbero essere più di uno
    	// Infatti il metodo Find ritorna un
    	// array di controlli con [0] prendi il 
    	// primo (e unico) della lista. 
    	
    	Control controllo = this.Controls.Find(picName, true)[0];
    	
    	// Fai un cast del controllo di tipo 'generico' 
    	// Control e lo ritrasformi in PictureBox con 
    	// (PictureBox)controllo.
    	// Questo oggetto è effettivamente un pictureBox
    	// per cui puoi invocare 
    	// il metodo .Image.Save(......)
    	
    	((PictureBox)controllo).Image.Save("C:\\pippo.bmp");
    	
    	// Il tutto è più chiaro con i seguenti passaggi : 
    	
    	// Control controllo = this.Controls.Find(picName, true)[0];
    	// PictureBox picture = (PictureBox)controllo; 
    	// picture.Image.Save("C:\\pippo.bmp");
    	
    	//
    	// Per utilizzare le ultime tre istruzioni, 
    	// commenta le prime due e scommenta
    	// queste ultime tre. 
    	// Entrambi i gruppi sono equivalenti. 
    	//
    }
    Ciao, Brainjar

  3. #3
    Utente di HTML.it L'avatar di stan83
    Registrato dal
    May 2003
    Messaggi
    106
    spettacolo grazie provo appena torno a casa

    Grazie grazie!
    Mai fare oggi quello che puoi fare domani.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.