Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    615

    Variabile con più tipi

    Buonasera a tutti.
    Nel form della mia win appl in c# 2005 esistono tre pannelli pnl1, pnl2, pnl3. Esiste anche una variabile stringa myStringa. Bene, io voglio che quando questa variabile valga "pnl1", questo sia reso visibile e così via per il due e per il tre. Il punto è: come posso convertire una variabile stringa in una variabile pannello? Ovvero vorrei creare qualcosa (senza usare switch e simili) tipo:

    Funzionediconversionechevichiedo(myStringa).visibl e=true;

    Grazie a tutti!

  2. #2
    Ma non ha più senso dichiarare una variabile di tipo System.Windows.Forms.Panel invece che stringa? In tal modo basta assegnarci normalmente il panel che ti interessa... In alternativa puoi sempre assegnare alla stringa il nome del controllo per poi recuperarlo cercando il suo nome in this.Controls.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    615
    NO!! Perché in realtà quel valore è stato inserito in un file di configurazione che ho creato apposta ed in qual file proprio non riesco ad inserire una variabile tipo Pannello1. E si che ci ho provato... Ho messo il nome dell'impostazione, il tipo (system... eccetera... panel) ma poi se inserivo il nome del pannello leggevo un errore (parlo ovviamente della griglia per inserire le impostazioni).

    PS ma come si recupera il nome di un controllo.. come mi suggerisci tu?

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    615
    Ho risolto, grazie comunque per le tue risposte! il form passa alla classe i pannelli del form e due variabili panel, queste ultime in modalità ref. poi la classe provvede alle opportune assegnazioni. lo dico se può essere utile a qualcuno. grazie comunque!

  5. #5
    codice:
    public Control GetControlByName(string ctrlName, Form frm)
    {
        ctrlName = ctrlName.ToLower()
        foreach (control ctrl in frm.Controls)
           if(ctrl.Name.ToLower() == ctrlName) return ctrl;
        return null;
    }
    Richiama la funzione passandole come primo parametro il nome del controllo e come secondo il nome del form in cui cercarlo; ti restituirà il controllo in questione o, qualora non esistano controlli con il nome indicato, null.
    ---EDIT---
    Ah, ok, meglio così.
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    615
    MItaly da queste parti non si finisce mai di imparare!! Oltre al problema in questione il tuo ciclo mi ha dato anche un'altra idea. Grazie ancora...

  7. #7
    Non c'è di che; ciao!
    Amaro C++, il gusto pieno dell'undefined behavior.

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    615
    Ora sono bloccato sulla gestione utenti... Se ti fosse possibile darmi qualche dritta anche sull'altro mio quesito... Grazie comunque tantissimo tra ieri sera ed oggi mi hai insegnato un sacco di cose!

    A volte la soluzione di un problema consente di imparare 98789 cose anche non direttamente attinenti al problema.

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.