2009-10-18 2 views
0

Je dois écrire un délégué pour un programme multi-thread qui activera/désactivera une variété de contrôles. Il semble logique que l'utilisation d'un gestionnaire pour tous les contrôles serait le meilleur choix, mais je ne suis même pas sûr que cela soit possible dans .net et si oui comment l'implémenter.Puis-je utiliser une classe parent .net control pour l'activer/désactiver?

+0

Vous pourriez expliquer un peu plus, pourquoi le délégué? Et est-ce la même chose que le gestionnaire? –

+0

Lorsque vous utilisez un thread de travail, vous devez appeler un délégué pour mettre à jour un contrôle d'interface utilisateur créé dans un autre thread. Je voudrais créer un délégué capable de gérer tous les types de contrôles de l'interface utilisateur pour activer la désactivation. – Gio

+0

Dans ce cas, la réponse d'assassin93 semble être la bonne. –

Répondre

1
public void SetControlsEnabled(bool enabled) 
{ 
    // Make sure we're in the correct thread 
    if (InvokeRequired) 
    { 
     // If not, run the method on the UI thread 
     Invoke(new MethodInvoker(() => SetControlsEnabled(enabled))); 
     return; 
    } 

    // Put all control code here, e.g: 
    // control1.Enabled = enabled; 
    // control2.Enabled = enabled; 

    // Alternatively, do a foreach(Control c in Controls) { ... } 

} 
+0

Nice. Ce que je cherchais vraiment, c'était la classe de base "contrôle". Merci. – Gio

Questions connexes