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 :

Personnalisation de Control Windows Form


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2012
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 206
    Points : 455
    Points
    455
    Par défaut Personnalisation de Control Windows Form
    bonjour,

    Je souhaiterais créer rajouter des fonctions/Méthodes au control Chart standard fourni par windows réutilisable dans d'autre projet.
    Par exemple le zoom (qui est nul), et la gestion de chartArea lorsque l'on en a plusieur sur le même chart.

    Dois je créer un nouveau projet "Bibliothèque de contrôles Windows Forms" ?

    Je ne veux pas perdre la possibilité de configurer le chart depuis la boites à outils.

    Dites moi si je n'ai pas été très clair.

  2. #2
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Le plus indiqué serait de créer un UserControl héritant de Chart.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2012
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 206
    Points : 455
    Points
    455
    Par défaut
    C'est ce que j'avais commencé a faire

    UserChart.vb
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Public Class UserChartV
        Inherits Windows.Forms.DataVisualization.Charting.Chart
    End Class
    UserChart.Designer.vb
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    Partial Class UserChartV
        Inherits System.Windows.Forms.DataVisualization.Charting.Chart
    
        'UserControl1 remplace la méthode Dispose pour nettoyer la liste des composants.
        <System.Diagnostics.DebuggerNonUserCode()> _
        Protected Overrides Sub Dispose(ByVal disposing As Boolean)
            Try
                If disposing AndAlso components IsNot Nothing Then
                    components.Dispose()
                End If
            Finally
                MyBase.Dispose(disposing)
            End Try
        End Sub
    
        'Requise par le Concepteur Windows Form
        Private components As System.ComponentModel.IContainer
    
        'REMARQUE*: la procédure suivante est requise par le Concepteur Windows Form
        'Elle peut être modifiée à l'aide du Concepteur Windows Form.  
        'Ne la modifiez pas à l'aide de l'éditeur de code.
        <System.Diagnostics.DebuggerStepThrough()> _
        Private Sub InitializeComponent()
            Dim ChartArea1 As System.Windows.Forms.DataVisualization.Charting.ChartArea = New System.Windows.Forms.DataVisualization.Charting.ChartArea()
            Dim Legend1 As System.Windows.Forms.DataVisualization.Charting.Legend = New System.Windows.Forms.DataVisualization.Charting.Legend()
            Dim Series1 As System.Windows.Forms.DataVisualization.Charting.Series = New System.Windows.Forms.DataVisualization.Charting.Series()
            Me.Chart1 = New System.Windows.Forms.DataVisualization.Charting.Chart()
            CType(Me.Chart1, System.ComponentModel.ISupportInitialize).BeginInit()
            Me.SuspendLayout()
            '
            'Chart1
            '
            ChartArea1.Name = "ChartArea1"
            Me.Chart1.ChartAreas.Add(ChartArea1)
            Me.Chart1.Dock = System.Windows.Forms.DockStyle.Fill
            Legend1.Name = "Legend1"
            Me.Chart1.Legends.Add(Legend1)
            Me.Chart1.Location = New System.Drawing.Point(0, 0)
            Me.Chart1.Name = "Chart1"
            Series1.ChartArea = "ChartArea1"
            Series1.Legend = "Legend1"
            Series1.Name = "Series1"
            Me.Chart1.Series.Add(Series1)
            Me.Chart1.Size = New System.Drawing.Size(397, 384)
            Me.Chart1.TabIndex = 0
            Me.Chart1.Text = "Chart1"
            '
            'UserChartV
            '
            Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
            Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
            Me.Controls.Add(Me.Chart1)
            Me.Name = "UserChartV"
            Me.Size = New System.Drawing.Size(397, 384)
            CType(Me.Chart1, System.ComponentModel.ISupportInitialize).EndInit()
            Me.ResumeLayout(False)
    
        End Sub
        Friend WithEvents Chart1 As System.Windows.Forms.DataVisualization.Charting.Chart
    
    End Class
    J'ai du coup une erreur sur les ligne rouge et je comprend pas ce qu'il faut faire ...

    Dois je déposer un chart sur le le designer ...

    J'ai lu ce tutoriel, mais j'ai rien compris : http://morpheus.developpez.com/usercontrols/


  4. #4
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Comme le UserControl hérite de Chart, inutile de définir/créer Chart1 et remplacer "Me.Chart1" par "Me".
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,

    Je ne connais pas trop le contrôle Chart, mais apparement ces propriétés n'existent pas.
    Il faut donc les créer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Public Property AutoScaleMode As AutoScaleMode
        Public Property AutoScaleDimensions As SizeF
    Et ensuite les gérer suivant tes besoins.

    Ces propriétés apparaîtrons ainsi dans la fenêtre des propriétés en mode désign de tes contrôles UserChartV que tu poseras sur tes Form(s).

    A+, Hervé.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  6. #6
    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
    on ne fait pas un usercontrol qui hérite d'un controle ca n'a pas de sens, sauf si c'est un usercontrol qu'on étend, mais chart est un control

    soit on fait un usercontrol et on pose un chart dessus, le usercontrol manipulant le chart

    soit on fait une classe dans laquelle on marque inherits chart
    il n'y a alors pas de partie design, et pas d'initializecomponent, me design alors le chart et on code ce qu'on veut en plus



    un control comme Button n'a pas de partie design, il n'a que du code et dans l'event paint il draw un rectangle du texte et quelques jolis effets, le tout via du code
    un usercontrol est un assemblage de plusieurs controls sur un même container réutilisable
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    soit on fait une classe dans laquelle on marque inherits chart
    il n'y a alors pas de partie design, et pas d'initializecomponent, me design alors le chart et on code ce qu'on veut en plus
    Effectivement,
    On part d'une "classe Contrôle Personnalisé"
    Je cite le commentaire indiqué lors du choix de la création de cette classe.
    Classe pour la création d'un contrôle Windows Form dessiné par l'utilisateur.
    Ensuite il faut coder les effets voulus (c'est ce que j'indiquais en disant "ensuite les gérer suivant tes besoins.", voir mon post précédant)
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  8. #8
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2012
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 206
    Points : 455
    Points
    455
    Par défaut
    Merci a tous les trois,

    J'ai opté pour la classe qui hérite directement sans passer par un UserControl.
    Il n'y a plus qu'à faire parler mon imagination.

  9. #9
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    on ne fait pas un usercontrol qui hérite d'un controle ca n'a pas de sens, sauf si c'est un usercontrol qu'on étend, mais chart est un control
    Oui c'est vrai, j'ai parlé de UserControl en pensant à des Custom control .

    Tutorials:
    How to: Inherit from the Control Class
    How to: Inherit from the UserControl Class
    How to: Inherit from Existing Windows Forms Controls
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

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

Discussions similaires

  1. [Débutant] Avis sur évolution d'un control (Windows Forms)
    Par _Ez3kiel dans le forum VB.NET
    Réponses: 6
    Dernier message: 28/01/2013, 13h25
  2. Réponses: 1
    Dernier message: 04/03/2010, 16h08
  3. windows form personnalisée
    Par thor76160 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 27/08/2009, 00h34
  4. Hosting .NET Windows Forms Controls in IE
    Par AntonioMath dans le forum Windows Forms
    Réponses: 0
    Dernier message: 21/04/2009, 21h18
  5. Login control dans Windows Forms
    Par débutant_C# dans le forum Windows Forms
    Réponses: 4
    Dernier message: 19/05/2008, 15h32

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