IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Besoin d'aide sur les génériques


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut Besoin d'aide sur les génériques
    Hello,

    Je débute dans l'utilisation des génériques et je souhaite créer une fonction servant à activer/désactiver les contrôles d'un type donné sur un form.

    J'ai donc écrit ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Private Sub EnableControls(Of T)(ByVal enable As Boolean)
            For Each ctl As T In Me.Controls.OfType(Of T)()
                ctl.Enabled = enable
            Next
        End Sub
    Evidemment, cela ne passe pas car T pourrait tout aussi bien être le type Integer (par exemple) qui n'a bien sûr pas la propriété Enable...

    Ma question est donc la suivante : Comment préciser que T doit être un type qui hérite de Control ?

  2. #2
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    A force de tâtonner, j'ai fini par trouver

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Private Sub EnableControls(Of T As Control)(ByVal enable As Boolean)
            For Each ctl As T In Me.Controls.OfType(Of T)()
                ctl.Enabled = enable
            Next
        End Sub

  3. #3
    Membre Expert
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Par défaut
    voir Types génériques [section Contraintes]

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub EnableControls(Of T As Control)(ByVal enable As Boolean)
        For Each ctl As T In Me.Controls.OfType(Of T)()
            ctl.Enabled = enable
        Next
    End Sub

  4. #4
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    ... J'ai quand même encore un souci...

    J'ai souhaite utiliser cette méthode pour des ToolStripButton mais ces derniers n'héritent pas de Control...

    Je pensais pouvoir réécrire la même chose en changeant le générique mais apparemment, cela n'est pas pris en compte dans la signature et je me retrouve donc avec deux méthodes ayant la même signature (ce qui est bien sûr interdit).

    Comment feriez-vous ?

  5. #5
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    bonjour Kropernic

    Mais je ne comprends pas l'exemple des ToolStripButtons
    Car ils sont childrens du Toolstrip qui lui est control...
    Tout controle desactive par ta methode verra son contenu desactive .....
    Meme un extender provider s'en trouve desactive si le control qu'il survole est desactive....

    Par suite je ne vois pas ou se situe le souci...
    bon code....

  6. #6
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Citation Envoyé par MABROUKI Voir le message
    bonjour Kropernic

    Mais je ne comprends pas l'exemple des ToolStripButtons
    Car ils sont childrens du Toolstrip qui lui est control...
    Tout controle desactive par ta methode verra son contenu desactive .....
    Meme un extender provider s'en trouve desactive si le control qu'il survole est desactive....

    Par suite je ne vois pas ou se situe le souci...
    bon code....
    Oui bien sûr, si on désactive un contenant, son contenu est désactivé également (mais si le contenu est aussi contenant, son contenu à lui n'est pas désactivé).
    N.B. : C'est d'ailleurs de cette façon que je procède, ce truc sur les génériques n'est qu'un exercice.

    Pour en revenir au toolstripbutton, je pourrais effectivement désactivé le toolstrip. Mais peut-être que ce toolstrip contient différent types de contrôles et que je ne veux désactiver que les toolstripbutton...

    C'était mon but à la base avec cette méthode générique. A noté que j'ai ajouté un appel récursif pour chercher dans les enfants de ctl car sinon, cela ne désactive que les contrôles qui sont des enfants direct du contrôle Form.

    Bref, la question était : Comment faire pour avoir une seule méthode qui gère 2 types génériques puisque le type du générique n'est pas pris en compte dans la définition ?

Discussions similaires

  1. [Débutant] besoin d'aide sur les web services
    Par Diangelita dans le forum Services Web
    Réponses: 3
    Dernier message: 20/01/2006, 08h41
  2. Besoin d'aide sur les fonction d'interbase
    Par BOUBOU81 dans le forum InterBase
    Réponses: 2
    Dernier message: 05/11/2004, 10h00
  3. besoin d'aide sur les ORB
    Par floorfille dans le forum CORBA
    Réponses: 4
    Dernier message: 24/08/2004, 15h43
  4. Filemaker ... besoin d'aide sur les Plugin
    Par joange dans le forum Autres SGBD
    Réponses: 3
    Dernier message: 22/04/2004, 10h16
  5. [CR] besoin d'aide sur les formules
    Par GuillaumeDSA dans le forum Formules
    Réponses: 4
    Dernier message: 10/07/2003, 12h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo