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 :

[2.0]Usercontrol non visible dans la boite à outil


Sujet :

C#

  1. #1
    Membre du Club Avatar de FraktaL
    Profil pro
    Inscrit en
    Août 2003
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 110
    Points : 52
    Points
    52
    Par défaut [2.0]Usercontrol non visible dans la boite à outil
    Bonjour,

    J'ai un UserControl qui est destiné à contenir d'autres UserControl. exactement comme un TreeView intègre des TreeNodes. ce que je souhaiterais c'est que mon composant 'enfant' ne soit pas visible dans la boite à outil et ne puisse être ajouté à une Form. C'est à dire qu'il ne puisse être ajouté que dans son conteneur.

    On ne peut pas ajouter de TreeNodes ou de ListViewItem à une Form; on ne peut que les assigner respectivement à la collection appropriée de chaque contrôle.

    J'ai déjà mon conteneur et mon contrôle enfant. Tout fonctionne bien. Je souhaite juste que ce controle enfant ne puisse figurer dans la boite à outil et qu'on ne puisse pas l'ajouter sur une form par le code.

    Merci d'avance pour toute aide

    Frak.

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    il suffit de rajouter un attribut au dessus de la classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <System.ComponentModel.ToolboxItem(false)> _

  3. #3
    Membre du Club Avatar de FraktaL
    Profil pro
    Inscrit en
    Août 2003
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 110
    Points : 52
    Points
    52
    Par défaut
    j'ai essayé mais ca ne change rien; il est toujours présent...

  4. #4
    Membre du Club Avatar de FraktaL
    Profil pro
    Inscrit en
    Août 2003
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 110
    Points : 52
    Points
    52
    Par défaut
    Je retire ce que j'ai dit; j'avais omis de rafraichir ma boite à outil. Grand merci!

    Par contre je peux toujours ajouter le contrôle via le code...

  5. #5
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    pour ca il faut que ton constructeur ne soit accessible que depuis la classe qui a le droit d'en instancier

    ou mettre ta classe en privée dans la classe qui a le droit de les instancier

  6. #6
    Membre du Club Avatar de FraktaL
    Profil pro
    Inscrit en
    Août 2003
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 110
    Points : 52
    Points
    52
    Par défaut
    Ma classe est un user control.

    Je ne peux la mettre private, protected ou internal.

    L'idée du constructeur qui ne soit accessible que par la classe parent me semble être la meilleure chose à faire. Le seul soucis c'est que je ne vois pas trop comment faire...

  7. #7
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    je viens de te l'expliquer !

    et c'est pas le usercontrol qu'il faut mettre en privé, c'est la classe que tu te sers pour mettre dedans



    désolé je fais du vb, mais ca donnerait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Public Class MonUC
     
        /// code
     
     
     
        Private Class MonControleQuiVaDansMonUC
            /// code
        End Class
     
     
    End Class

    ainsi MonUC peut instancier des MonControleQuiVaDansMonUC et personne d'autre

  8. #8
    Membre du Club Avatar de FraktaL
    Profil pro
    Inscrit en
    Août 2003
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 110
    Points : 52
    Points
    52
    Par défaut
    Bon je récapitule car je suis pas sur qu'on se comprenne:

    J'ai 2 usercontrol:
    le premier contient des autres.

    D'après toi je dois mettre les classes du deuxième à l'intérieur du premier...

    J'avoue que là je suis pas trop...

    1. Je perds la possibilité de modifier le usercontrol enfant via le designer.
    2. Je suis pas du tout sur que ca soit possible.

  9. #9
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    ca doit etre possible, tout est possible en .net
    mais c'est pas d'un niveau simple ...

  10. #10
    Membre du Club Avatar de FraktaL
    Profil pro
    Inscrit en
    Août 2003
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 110
    Points : 52
    Points
    52
    Par défaut
    J'ai trouvé une partie de la solution:
    Mon user control parent comprend une liste d'objet n'héritant pas de usercontrol. Ils ne peuvent donc pas etre ajoutés à une form. Via ces objets, j'instancie les usercontrols enfant et je les place sur mon usercontrol parent. Les usercontrols enfant n'apparaissent pas dans la boite à outil puisque ToolBoxItem est à false.

    Jusque là ca va.

    Maintenant je dois juste limiter l'accès à mes usercontrol enfant à ma librairie de contrôles car via le code je peux toujours ajouter un usercontrol enfant sur une form.

    Ca ca

  11. #11
    Membre du Club Avatar de FraktaL
    Profil pro
    Inscrit en
    Août 2003
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 110
    Points : 52
    Points
    52
    Par défaut
    J'ai trouvé une partie de la solution:
    Mon user control parent comprend une liste d'objet n'héritant pas de usercontrol. Ils ne peuvent donc pas etre ajoutés à une form. Via ces objets, j'instancie les usercontrols enfant et je les place sur mon usercontrol parent. Les usercontrols enfant n'apparaissent pas dans la boite à outil puisque ToolBoxItem est à false.

    Jusque là ca va.

    Maintenant je dois juste limiter l'accès à mes usercontrol enfant à ma librairie de contrôles car via le code je peux toujours ajouter un usercontrol enfant sur une form.

    Ça doit être faisable en limitant au namespace de la librairie. Il y a t'il un mot clé spécifique pour ça?

Discussions similaires

  1. [XL-2007] Ms calendar non disponible dans la boite à outil
    Par young 25 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/03/2012, 18h29
  2. [VS2008] - Contrôle non disponible dans la boite à outils
    Par sandF dans le forum Visual Studio
    Réponses: 1
    Dernier message: 03/12/2008, 17h29
  3. Redirection URL Non visible dans la barre d'adresse
    Par domileg dans le forum Langage
    Réponses: 5
    Dernier message: 04/08/2006, 09h02
  4. Composants non visible dans certaines applications
    Par chtom dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 22/03/2006, 17h33
  5. Réponses: 2
    Dernier message: 12/01/2006, 14h54

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