Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [C#]Richiamare un controllo/pulsante utilizzando una stringa al posto del nome

    Salve a tutti,
    comincio subito esponendovi il mio problema...
    allora io ho un numero di bottoni che si chiamano per esempio btn1,btn2,btn3 ecc ecc... e li dovrei richiamare in un ciclo quindi per esempio utilizzando una stringa composta dalla parte statica btn + un indice che aumenta e mi va a cambiare i pulsanti...solamente che non so come fare
    in rete avevo trovato questa soluzione solamente che non ho capito alla perfezione come funzioni e nemmeno se sia adatta a ciò che mi serve...
    codice:
    public Control GetControlByName(string ctrlName) 
    { 
                 ctrlName = ctrlName.ToLower() 
                  foreach (Control ctrl in frm.Controls) 
                          if(ctrl.Name.ToLower() == ctrlName) 
                                  return ctrl;
    }
    aspetto con ansia vostra risposta perchè non so davvero come procedere xP
    Grazie mille in anticipo =D

    ------------UPDATE------------

    Allora ragazzi con il codice che ho postato prima ho fatto dei progressi...questo è quello che sono riuscito a combinare:

    codice:
            void CaricaListaPiloti()
            {
                int i = 0;
                foreach (int n in piloti)
                {
                    i++;
                    string tmp = "btnPilota" + i;
                    GetControlByName(tmp).IsEnabled=true;//Questa riga funziona e abilita il pulsante
                    GetControlByName(tmp).Content = n.ToString();//Questa in compilazione da errore 
                }
            }
    
            public Control GetControlByName(string ctrlName) 
            {
                  ctrlName = ctrlName.ToLower();
                  foreach (Control ctrl in grid1.Children) 
                          if(ctrl.Name.ToLower() == ctrlName) 
                                  return ctrl;
                  return null;
            }
    Allora come potete leggere nei commenti la riga che deve abilitare il pulsante funziona benissimo ma la seconda mi da errore in in fase di compilazione dandomi il seguente errore:
    codice:
    'System.Windows.Controls.Control' non contiene una definizione di 
    'Content' e non è stato trovato alcun metodo di estensione 
    'Content' che accetta un primo argomento di tipo 
    'System.Windows.Controls.Control'. Probabilmente manca una 
    direttiva using o un riferimento a un assembly.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    C# e tutti i linguaggi .NET vengono trattati nel forum "Visual Basic e .NET Framework".

    Sposto.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it L'avatar di torn24
    Registrato dal
    Aug 2008
    Messaggi
    551

    ciao

    Ti dice che Content non è una proprietà o metodo della classe control .

    cosa dovrebbe essere per te content ??? che funzione ha ??? non è che non esiste ?
    Tecnologia

  4. #4
    con content indico la proprietà del bottone, quela che contiene il testo visualizzato sul bottone...infatti se tipo voglio cambiare il testo di un bottone con il nome specifico faccio <nomebottone>.Content="blablabla"; e funziona solamente che se uso questo metodo è come se il bottone non avesse la proprietà content...

  5. #5
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,539
    Ciao,
    quando ti riferisci a WPF ti conviene specificarlo nel titolo.

    prova a fare un cast al tipo button :

    codice:
    ((Button)GetControlByName(tmp)).Content = n.ToString();

  6. #6
    Siii grande U235 ora ha funzionato!!! =D sei mitico problema risolto si vede che lui lo vede come controllo ma non sapeva nello specifico di che tipo era(bottone) e quindi mi faceva usare solamente le proprietà che hanno tutti i controlli grazie mille...

  7. #7
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,539
    Figurati


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.