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 :

Ajouter un UserControl a partir d'une Classe


Sujet :

VB.NET

  1. #1
    Membre régulier
    Homme Profil pro
    Scientist
    Inscrit en
    Mai 2013
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Scientist
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2013
    Messages : 110
    Points : 87
    Points
    87
    Par défaut Ajouter un UserControl a partir d'une Classe
    Bonjour,

    Voila, j'ai une PictureBox avec un Bouton se situant sur la PictureBox, le tout cree dans une Class.
    Quand j'appuie sur ce Bouton, je fais apparaitre un "Panel" d'information (en fait, j'utilise un UserControl "p") a cote du Bouton.

    Mon probleme est simple, j'ajoute ce UserControl de la facon suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mPictureBox.Controls.Add(p)
    Malheureusement, si le UserControl est plus grand que la PictureBox, il ne vois qu'une partie, ce qui est logique puisqu'il est ajoute sur la PictureBox.

    Donc, comment faire pour ajouter ce UserControl sur la PictureBox a cote du Bouton, meme si ce UserControl est plus grand que la PictureBox?

    En esperant que ma question sois clair!
    Note: le titre n'est pas genial non plus, mais je ne sais pas trop comment m'expliquer.
    Cependant, par analogie, si vous utiliser une PictureBox en Design et que vous appuyez sur le petit symbol "Next", une fenetre apparait, et c'est plus ou moins ce que j'essaye de faire.

    Merci,

    A+
    JLuc01

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 256
    Points : 290
    Points
    290
    Par défaut
    Bonjour à vous,

    Si votre UserContrôle ne fait que afficher des informations et que celles-ci n'apparaissent que lors du click sur le dit contrôle, j'aurais tendance à vous conseiller d'utiliser une nouvelle Form pour l'affichage des informations.

    Je m'explique:
    - L'utilisateur clique sur votre UserControl.
    - L'UserControl reçoit le clique et souhaite afficher des informations.
    - L'UserControl crée une fenêtre (avec par exemple le BorderStyle configuré sur None).
    - L'UserControl affiche cette fenêtre d'information.

    Du coup comme l'UserControl affiche une autre fenêtre avec les informations, celles-ci ne sont plus masquée à cause de la taille de la fenêtre contenant l'UserControl.

  3. #3
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    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 154
    Points : 25 072
    Points
    25 072
    Par défaut
    si vous voulez que le controle dépasse de la picturebox il ne faut pas le mettre dans le picturebox
    à tenter : mPictureBox.Parent.Controls.Add(p)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre régulier
    Homme Profil pro
    Scientist
    Inscrit en
    Mai 2013
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Scientist
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2013
    Messages : 110
    Points : 87
    Points
    87
    Par défaut
    Bonjour,

    Je m'explique de nouveau, car je n'etais peut-etre pas tres clair.

    En fait, j'ai une PictureBox avec un Bouton "x" dessus, cette PictureBox est creee via une Class. Dans cette Class, je voudrais mettre le code qui fait apparaitre le UserForm (ou autre Form, Panel...) quand je clique sur ce bouton.

    Dans ma Form principale, j'ai un autre Bouton "Add" qui ajoute une Instance de ma Class. Donc, a chaque fois, j'ajoute une PictureBox avec son Bouton "x".
    Quand j'appuie sur le Bouton "x", j'arrive a ouvrir le UserForm, mais comme il depend de la Class (ajouter sur le PictureBox), il sera plus ou moins coupe en function de la taille du PictureBox.

    Je pense que je m'y prend de travers, c'est pourquoi je vous demande un conseil ou une orientation. Peut-etre un probleme de conception ou organisation de ma Class.

    Je ne sais pas trop par quel bout m'y prendre.
    Merci quand meme,

    JLuc01

    Note: Pour mieux comprendre, je reprend l'exemple du PictureBox en Design: on cree un instance de PictureBox avec son Framework et un "Bouton", on appuie sur ce "Bouton" et une fenetre apparait independante du PictureBox car la fenetre apparait toujours en entier (en partie sur la PictureBox et en partie a l'exterieur).

  5. #5
    Membre régulier
    Homme Profil pro
    Scientist
    Inscrit en
    Mai 2013
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Scientist
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2013
    Messages : 110
    Points : 87
    Points
    87
    Par défaut
    mPictureBox.Parent.Controls.Add(p)
    En fait, c'est la voie a suivre. J'ai le UserForm sur la Form principale. Maintenant, comment je le positionne sur la PictureBox juste a cote du Bouton, car le code suivant (ligne 1) dans ma Class ne marche pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    p.Location = New Point(b.Location.X + 8, b.Location.Y)
    p.Visible = True
    p.BringToFront()
    (b etant le Bouton sur ma PictureBox mPictureBox)

    La PictureBox est ajoute dans un SplitContainer/Panel2.
    Donc, peut-etre a considerer, mais ce que j'essaye pour l'instant ne marche pas.

    Merci,
    JLuc01

  6. #6
    Membre régulier
    Homme Profil pro
    Scientist
    Inscrit en
    Mai 2013
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Scientist
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2013
    Messages : 110
    Points : 87
    Points
    87
    Par défaut
    Salut,

    J'ai finalement trouve, c'etait pas bien complique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    p.Location = New Point(b.Location.X + mPictureBox.Location.X + 8, b.Location.Y + mPictureBox.Location.Y)
    Merci pour votre aide.

    A+
    JLuc01

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/03/2008, 07h31
  2. Réponses: 26
    Dernier message: 09/07/2006, 17h42
  3. Réponses: 1
    Dernier message: 22/06/2006, 09h17
  4. Réponses: 6
    Dernier message: 21/05/2006, 20h37
  5. Réponses: 12
    Dernier message: 03/11/2005, 18h45

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