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

Windows Forms Discussion :

Modifier le Graphics d'un UserControl


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 50
    Par défaut Modifier le Graphics d'un UserControl
    Bonjour,

    Petit soucis de Graphics...
    J'ai créé un UserControl permettant d'obtenir une PictureBox avec scrollbars.
    Mon UserControl est donc composé d'une pictureBox et de deux scrollbars.
    Jusque là pas de soucis, ça fonctionne parfaitement, je n'ai aucun problème à afficher mon image dans la pictureBox et à gérer le défilement.

    Le problème arrive dans l'utilisation courante.
    Lorsque j'appelle l'évènement Paint pour ce UserControl (côté utilisateur, donc), l'argument PaintEventArgs me retourne le Graphics du UserControl, là où je souhaiterais récupérer le Graphics de ma PictureBox... Comment réaliser cela ?

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Qu'est ce que tu entends par "appeler l'événement paint du contrôle" ?
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 50
    Par défaut
    Par cela, j'entends ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub scrollPicBox_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles scrollPicBox.Paint

    Appelé donc du côté utilisateur. Le problème est que e.Graphics est relatif au UserControl même, là ou je souhaiterais récupérer le Graphics de ma PictureBox présente dans le UserControl.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 50
    Par défaut
    Juste pour dire que je suis toujours en quête d'une solution ^^. Je me contente temporairement d'utiliser le graphics du UserControl pour l'affichage de mon image au lieu du PictureBox. Conséquence, lorsque j'appelle l'évènement Paint côté utilisateur, je récupère bien le graphics dans lequel est affiché mon image, mais je trouve un problème de superposition entre scrollbars et ce que je peux dessiner dans le graphics.
    S'il n'est pas possible de répondre à ma première question (j'ai beau chercher, je ne trouve pas de réponse), comment serait-il possible de délimiter la zone de dessin du graphics de mon UserControl, de manière simple et performante ?

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    sur ton picturebox, il doit y avoir invokepaint et invokepaintbackground
    je crois que ces subs requiert le graphics en parametres, donc passe celui de ton evenement paint du usercontrol et ca devrait aller

    m'enfin ca reste étrange, ton usercontrol doit pouvoir faire ce que tu veux faire sans poser de picturebox

    sans parler que le scroll doit pouvoir etre automatique via un scrollablecontrol hérité
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    AP
    AP est déconnecté
    Membre chevronné
    Avatar de AP
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2002
    Messages : 480
    Par défaut
    Houla je suis peut-être mal réveillé mais j'ai un peu de mal à comprendre ce que tu veux faire...
    Peux tu nous dire simplement le résultat final que tu souhaites obtenir? j'ai l'impression que la méthode employée n'est pas la bonne.

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

Discussions similaires

  1. [UserControl] Récupération des valeurs modifiés
    Par hirochirak dans le forum ASP.NET
    Réponses: 1
    Dernier message: 03/08/2009, 18h19
  2. modifier un Graphics
    Par sky88 dans le forum Débuter
    Réponses: 7
    Dernier message: 01/09/2008, 00h38
  3. [2.0][C#]UserControl, Groupe de proprieté non modifiable !!
    Par chnew dans le forum Windows Forms
    Réponses: 4
    Dernier message: 07/01/2006, 00h30
  4. [VB6] [MDI] Modifier form en MDIform
    Par fikou dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 12/09/2002, 13h48
  5. Réponses: 5
    Dernier message: 06/08/2002, 20h08

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