Forme : Attiva/Disattiva tutti i controlli in un contenitore (pannello)

Io sono la codifica di un C# Forme di applicazione e vorrei sapere come abilitare/disabilitare tutti i controlli di container all’interno di un pannello.

Ecco il mio codice:

private void EnabledPanelContents(Panel panel, bool enabled)
{
    foreach (var item in panel.Controls)
    {
        item.enabled = enabled;
    }
}

Non c’è la proprietà enabled del pannello.Raccolta di controlli.

Come posso abilitare/disabilitare tutti i controlli di container all’interno di un pannello.

Grazie in anticipo.

  • perché non si utilizza item.enabled=false
  • È possibile impostare la proprietà enable del pannello per false

 

6 Replies
  1. 10

    Si stanno ottenendo i controlli var e iterazione su di loro e var non contiene property Enabled. Hai bisogno di un ciclo attraverso controlli e ottenere ogni controllo come Control. Provare questo

    private void EnabledPanelContents(Panel panel, bool enabled)
    {
        foreach (Control ctrl in panel.Controls)
        {
            ctrl.Enabled = true;
        }            
    } 

    Abilitato può essere true o false.

    • Di voto, e io penso che sia meglio per la Tipizzazione ctrl.Enabled = enabled; invece di ctrl.Enabled = true;
    • hai ragione, ma ho appena dato l’esempio, in modo appena usato true invece di enabled grazie per il tuo suggerimento. Voglio aggiornare la risposta.
    • Perché ricevo questo? “del sistema.web.interfaccia utente.controllo’ non contiene una definizione per ‘abilitato'”
  2. 1

    Se si dichiara voce come var (nel ciclo foreach), non hanno le proprietà di un controllo di windows.
    Si dovrebbe dichiarare come controllo.

    Provare questo frammento di codice e dovrebbe funzionare:

    foreach (Control item in panel.Controls)
    {
         item.Enabled = true;      //= true: enable all, = false: disable all
    }
  3. 1

    Provare il codice riportato di seguito,

        private void DisableAll_Click(object sender, EventArgs e)
        {
            EnabledPanelContents(this.panel1, false);
        }
    
        private void EnabledPanelContents(Panel panel, bool enabled)
        {
            foreach (Control item in panel.Controls)
            {
                item.Enabled= enabled;
            }
        }
  4. 0

    “Come posso abilitare/disabilitare tutti i controlli di container all’interno di un pannello.”

    A:
    Se si desidera abilitare o disabilitare tutti i controlli all’interno di un pannello, è possibile chiamare direttamente,

    Panel panel; 
    -> panel.Enabled = true;//For enabling all controls inside the panel.
    -> panel.Enabled = false;//For disabling all controls inside the panel.

    Se si desidera solo controlli specifici all’interno del pannello per essere attivata o disattivata, è possibile scorrere la raccolta dei controlli e il set è stato di attivazione true o false in base alle proprie esigenze.

  5. -1

    @anshu

    se i controlli sono controlli HTML quindi utilizzare

    foreach (Control ctrl in myControl1.Controls)
        if (ctrl is HtmlControl)
            ((HtmlControl)ctrl).Disabled = true;
  6. -1
    private void Form1_Load(object sender, EventArgs e)
    { 
        foreach (Control item in panel.Controls)
            if (ctrl is Button)
                ((Button)item).Enabled = false;
    }
    • Ho risolto il formattazione la tua risposta. In futuro si dovrebbe formattare correttamente il tuo post per renderli leggibili. Da rivedere

Lascia un commento