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#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    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
    Invité
    Invité(e)
    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
    Invité
    Invité(e)
    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
    Invité
    Invité(e)
    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 ?

+ 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