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

C# Discussion :

[C#] Comment implémenter le ControlAdded/Remove ?


Sujet :

C#

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 91
    Par défaut [C#] Comment implémenter le ControlAdded/Remove ?
    Bonjour à tous,

    pour implémenter la sécurité on m'a conseillé d'utiliser l'event ControlAdded afin de supprimer l'effet d'apparition/disparition.

    J'ai beau faire l'exécution pas à pas, ou mettre des tests : tous les contrôles présent sur ma form disparaissent.

    Le principe est que je récupère dans une base de données les contrôles auxquels l'utilisateur peut accéder. Si le nom correspond, on n'enlève pas le contrôle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    foreach(User.ControlDetail cd in user.Control)
    {
                    String s = cd.controlName;
                    Debug.WriteLine(s);
                    String si = e.Control.Name;
                    Debug.WriteLine(si);
                    Boolean b = s.Equals(si);
                    Debug.WriteLine(b);
                    Debug.WriteLine(cd.controlName.Equals(e.Control.Name));
                    if (cd.controlName.Equals(e.Control.Name) == false)
                    {
                        this.Controls.Remove(e.Control);
                    }
    }
    J'ai une List de structure, avec le nom du contrôle plus les permissions. Dans un premier temps, je me soucie que du nom. Si le contrôle pour cet utilisateur est présent dans la base de données l'uitilisateur y a accès.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    487
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 487
    Par défaut
    Citation Envoyé par L`artiste
    J'ai beau faire l'exécution pas à pas, ou mettre des tests : tous les contrôles présent sur ma form disparaissent.
    Ca veut dire qu'ils ne sont pas affichés (pb de rafraîchissement) ou qu'ils ne font plus parti de this.Controls ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 91
    Par défaut
    Plus affichés, mais nulle part dans le code je fais de COntrol.Hide() alors je me demande bien où ils sont partis...
    Car le Remove il ne passe pas dedans trois fois, et mes trois contrôles qui devaient logiquement rester ne sont plus la...

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    487
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 487
    Par défaut
    Ajoute this.Refresh() pour actualiser l'affichage.

    Il me semble supprimer des contrôles n'est pas tellement pratique.
    Pourquoi ne pas simplement les mettre en lecture seule?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 91
    Par défaut
    J'ai rajouté un test supplémentaire qui augmente mon incompréhension...
    me renvoit 0...

    Dans un sens ça me rassure que mes contrôles ne soit pas partis au lavage...
    Mais en même temps, trois fois il ne passe pas dans le Remove... Qui enlève mes contrôles alors ?

    En lecture seule ? C'est-à-dire ?

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    487
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 487
    Par défaut
    Citation Envoyé par L`artiste
    En lecture seule ? C'est-à-dire ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Control.Enabled = false

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 91
    Par défaut
    Ca va être un server .NET Remoting.

    Donc si je pouvais optimiser au maximum les ressources ça serait bien.
    Donc enlevé les contrôles me semble le mieux.
    Non ?

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    487
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 487
    Par défaut
    Tu imagines déjà des problèmes de performance avant d'avoir commencé.
    La règle n°1 de l'optimisation, c'est pas d'optimisation avant d'avoir une raison : d'abord la structure du logiciel, après les mesures, et ensuite l'optimisation si c'est utile.

    Pour te rassurer, le mieux est de faire un essai.
    Je suis convaincu qu'il n'y aura pas de problème de performance.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 91
    Par défaut
    Un essai... faudrait déjà que j'aille commencer le server... J'attends qu'on me communique l'implémentation à faire...
    Autant penser dès le départ, sinon je vais bien m'amuser à tout modifier le code par la suite...

    Au final je ne comprends toujours pas trop ce qui se passe... Il m'enlève tout

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 91
    Par défaut
    Ca y est j'ai compris !
    Le problème est mon foreach...
    Chaque fois je passe en revue ma list, mais je ne tombe pas sur le bon composant tout de suite... Alors avant la correspondance il l'enlève.
    Et quand je tombe dessus... bah il est déjà viré donc...

    Faut que j'implémente un système de recherche...

  11. #11
    Membre Expert
    Avatar de lakitrid
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    1 535
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 535
    Par défaut
    Effectivement j'aurais dû y penser

    Sinon pour ton système de recherche tu met une variable bool trouve avant le foreach, tu a met a false par défaut et dans le foreach tu la passe a true si tu trouve une correspondance.
    Après le foreach tu verifie la valeur de la variable, si elle est a false tu peux supprimer ou desactiver ton élément.

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 91
    Par défaut
    Bah j'essaye d'implémenter le Find sur ma List de structure mais je n'y arrive pas...
    NicolasG a suggéré la propriété Tag mais je n'arrive pas à y accéder >_<

  13. #13
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Citation Envoyé par L`artiste
    Bah j'essaye d'implémenter le Find sur ma List de structure mais je n'y arrive pas...
    NicolasG a suggéré la propriété Tag mais je n'arrive pas à y accéder >_<
    ben je croyais que c'était réglé çà alors résolu

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 91
    Par défaut
    J'ai mis en résolu... Ca y était pas ???
    J'avais pas dit que c'était résolu par un message mais il me semblait bien avoir fait le bouton "résolu"...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2.x] Comment afficher une erreur après un remove ->flush ?
    Par keokaz dans le forum Symfony
    Réponses: 4
    Dernier message: 01/09/2012, 13h28
  2. Réponses: 1
    Dernier message: 13/04/2010, 22h13
  3. Réponses: 2
    Dernier message: 07/01/2010, 01h03
  4. Réponses: 0
    Dernier message: 09/12/2008, 17h36

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