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 :

Insérer bouton bascule à deux images


Sujet :

VB.NET

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2015
    Messages : 14
    Points : 1
    Points
    1
    Par défaut Insérer bouton bascule à deux images
    Bonjour à tous !

    Premièrement je tiens à m'excuser si une question similaire a déjà été postée, mais je n'ai jamais vu un forum aussi complet en "sous-forum" et ça m'a légèrement découragé lorsque j'ai essayer de cibler mes recherches

    Définition :

    Je maîtrise assez peu la programmation de logiciels, cependant j'ai pendant longtemps réaliser des fonctionnalités en VBA sous Excel et d'autres logiciels de la suite Microsoft a titre personnel. Dans ces fonctionnalités, il m'est arrivé d'utilisé des boutons bascules à deux états nommés " ToggleButton".

    Aujourd'hui, j'aimerais réaliser un logiciel dans le cadre du développement d'un système domotique personnel, j'ai donc téléchargé Visual Basic 2015, et commencé la programmation d'une "esquisse" d'un programme, mais avant tout pour me faire la main avant d'attaquer le gros du poisson.

    Problème :

    J'aimerais dans le logiciel que j'ai commencé à développer, utiliser les mêmes boutons (BISTABLE, à bascule).

    Mais attention, j'ai une requête : J'aimerais également que ce bouton ait l'apparence d'une image que j'ai réalisée, en l'état non enfoncé, et qu'il ait l'apparence d'une seconde image, en l'état enfoncé.

    En fait pour faire simple, mon but est de réaliser un bouton " slide button " (Genre activer un réveil avec un iPhone). Cependant j'imagine que ça doit être une usine à gaz de réaliser un VRAI slide-button avec la fonction de "glissement" du bouton, personnellement, et dans un premier temps surtout, j'aimerais uniquement avoir l'apparence de ces boutons, avec le fonctionnement d'un simple bouton à bascule.

    Mes démarches préalables :

    J'ai bien entendu fait plusieurs recherches sur internet, mais je n'ai pas vraiment trouvé quelque chose de détaillé dans le langage de programmation que je m'apprête à utiliser, et surtout qui ne prenait pas en compte une seconde image lorsque l'état change. J'ai réussi également à modifier les paramètres de boutons genre RadioButton ou CheckBox, mais je n'ai jamais réussi à changer l'image lorsque le bouton était enfoncé, seulement celle de l'apparence avant qu'il soit enfoncé.




    Mesdames, messieurs,

    Quelqu'un d'entre-vous serait-il en mesure de m'aider dans cette noble tâche ? Qui, je l'imagine, peut éventuellement paraître simple vous certains d'entre vous ?!

    Merci d'avance pour toute l'aide que vous saurez m'apporter, à bientôt,

    Johnmaryn

  2. #2
    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
    il est possible de modifier l'apparence des controles
    chaque controle est codé en .net, donc il est possible d'en hériter, et de modifier le dessin qui est fait

    le mieux étant alors d'hériter de checkbox qui sert déjà à gérer un état 0 / 1
    et pour le dessin tu dessineras alors l'image selon l'état

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public class MonToggleBouton
      inherits Checkbox
     
      private overrides sub Onpaint(pevent as system.windows.forms.painteventargs)
        if me.checked then
              pevent.Graphics.Drawimage(imagechecked, 1,1)
          else
              pevent.Graphics.Drawimage(imagePASchecked, 1,1)
        end if
      end sub 
     
    end clas
    voilà dans le principe, après dans la boite à outils (après compilation) tu auras ce nouveau controle que tu pourras poser sur les forms
    le drawimage a d'autres surcharges (méthode du même noms mais avec des paramètres différents) permettant de faire au passage un redimensionnement de l'image, pour s'adapter à la taille du controle par exemple

    quand checked change, le code de base de checkbox fait qu'il demande le redessin du controle, donc cette sub sera rappelée automatiquement pour mettre à jour l'interface


    il est aussi possible de faire une animation du "togglage", avec un peu plus de code

    et si tu veux faire un controle pour un slide c'est à peine plus compliqué
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2015
    Messages : 14
    Points : 1
    Points
    1
    Par défaut
    Bonjour POL63,

    Si je comprends bien, créer une "class" publique revient à créer soi-même un objet.
    Après compilation de l'objet, ce dernier est ajouté à la liste d'outils.

    Je ne connaissais pas non plus la fonction d'héritage.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if me.checked then
              pevent.Graphics.Drawimage(imagechecked, 1,1)
          else
              pevent.Graphics.Drawimage(imagePASchecked, 1,1)
        end if
    A quoi retourne l'instruction " pevent.Graphics.Drawimage(imagechecked, 1,1) " ?
    J'ai déjà des images dessinées, que je peux exporter dans n'importe quel format, n'est-il pas possible d'aller chercher ces images dans les ressources images du projet ?
    C'est cette démarche que j'ai utilisé pour modifier l'image des boutons précédemment.



    et si tu veux faire un controle pour un slide c'est à peine plus compliqué
    Si vous m'accompagnez dans cette démarche, c'est avec plaisir, mais j'aimerais déjà réaliser ce premier bouton à deux état, histoire d'y aller pas à pas et de bien comprendre les structures


    L'idée au final, c'est d'avoir une interface avec un TabControl, premier onglet : Accès aux pièces, second onglet : Accès à toutes les lumières.

    En fait on pourrait allumer la lumière de la cuisine (par exemple) soit depuis la page cuisine (qui contient tout ce qui est possible de commander dans la cuisine) de l'onglet 1 soit directement depuis l'onglet 2 qui contient le bouton de chaque lumière de la maison Avec en plus deux boutons pour allumer toute la maison ou éteinte toute la maison.

    (histoire de te donner une idée de ce que je souhaite faire)

  4. #4
    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
    développer dans un langage sans en connaitre une partie assez conséquente fait qu'on passe à côté de beaucoup de choses
    tout le monde débute, donc tout le monde est passé par là

    vb.net est un langage orienté objet, ce qui veut dire qu'il y a des classes, qui génèrent des instances, qu'on peut faire de l'héritage, du polymorphisme etc...

    quand une classe hérite d'une autre, elle a tout le code de la classe de base, plus le code qu'on lui rajoute, on qu'on lui substitue
    ici le mot clé overrides signifie que le code d'origine n'est plus, qu'il est remplacé par ce code là

    en overridant la méthode onpaint, on peut alors dessiner tout autre chose que ce que fait le checkbox à l'origine
    car chaque controle se dessine sur la fenetre avec des instructions .net de base (drawstring, drawline, drawimage ...)

    créer une classe de type control dans un projet fait que le controle est ajouté à la boite à outils
    ici en héritant de checkbox la classe est de type control, donc ajouté à la boite à outils
    (on peut aussi créer un control totalement nouveau sans hériter de checkbox button ou autre)


    l'instruction pevent.Graphics.Drawimage sert à dessiner l'image à l'écran sur le controle
    quand on met une image dans la propriété image de button, celle ci est au final dessinée par la même instruction (car button fait drawimage si on lui donné une image)
    après libre à toi de mettre l'image en ressource du projet (c'est pratique en effet) et dans ce cas tu dois écrire my.resources.monimage sur cette ligne de dessin
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2015
    Messages : 14
    Points : 1
    Points
    1
    Par défaut
    Bien, j'ai, je pense, compris tout ce dont tu m'a fait part.


    J'ai également commencé les démarches :

    J'ai créé une classe, j'ai ai copié ton morceau de code, et fait la compilation.

    J'ai pris soin de modifier le chemin d'accès des images en question, en passant par les ressources.


    question : Est-ce une faute de frappe ou il est bien question de pevent.Graphics et non prevent.Graphics ?


    Enfin, lorsque je compile, cette erreur apparaît :


    BC30266 'Private Overrides Sub Onpaint(Prevent As PaintEventArgs)' ne peut pas se substituer à 'Protected Overrides Sub OnPaint(pevent As PaintEventArgs)', car elles ont des niveaux d'accès différents.

    Enfin, pour parfaitement comprendre la structure de ce petit bout de code, à quoi correspondent les deux 1 à la fin des pevent.Graphics ?
    Est-ce la taille ? 1 pour 1 = Taille d'origine ?

    Merci encore !

  6. #6
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    il s'agit bien de pevent et non prevent car c'est le nom de l'argument de ta fonction. Tu pourrais nommer ton argument choucroute mais ça aurait moins de sens (pevent pour PaintEvent, et puis c'est le nom de l'argument dans la fonction de la classe de base).

    Pour ton deuxième souci ça vient du fait que tu tentes d'overrider une fonction "protected" (accessible par la classe et ses classes dérivées) avec une fonction "private" (uniquement accessible par la classe elle-même).

    Pour ta dernière question il suffit d'aller voir la définition de la méthode sur la MSDN (site que je te conseille si tu poursuis l'aventure en .NET, tu y trouveras tout un tas d'info, de remarques et d'exemples). Il s'agit des coordonnées de l'angle supérieur gauche de l'image dessinée.

    Bon dev.
    Plus je connais de langages, plus j'aime le C.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2015
    Messages : 14
    Points : 1
    Points
    1
    Par défaut
    Bien, on progresse ! et c'est bien grâce à vous ...


    Mon hésitation sur Prevent / pevent viens du fait que je ne sais pas qui (internet, ou le logiciel ou autre) à certainement corriger le mot avant que je le colle dans la classe créée.
    Du coup j'avais Prevent de déclaré et pevent d'appelé dans la fonction... ça, c'est réglé !

    Enfin, pour la protection :

    Du coup dans mon code il s'agit de quoi ?

    Un private sub ?
    Un protected sub ?

    Comment pallier à ce problème ?
    Faut-il que je change dans les paramètres du checkbox la protected en private sub ? (pour la fonction OnPaint) ?

  8. #8
    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
    le code n'est pas à syntaxe exacte, je le tape ici de mémoire

    les mots clés private/public/protected (et d'autres) servent à définir la portée
    la méthode de base est protected et j'ai écris private, or private est plus restrictif donc il veut pas
    il suffit d'écrire protected à la place

    1,1 c'est les coordonnées, mais c'est un exemple, le mieux étant de trouver le code qui te convient
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2015
    Messages : 14
    Points : 1
    Points
    1
    Par défaut
    Ok ! comme je suis un peu sado-maso curieux de toutes façons j'avais déjà remplacé private par protected et les messages d'erreur ont disparus, le code semble correct.

    J'ai enregistré la classe, mais je ne trouve pas "montogglebutton" dans la boite à outil ?

    Faut-il faire plus qu'enregistrer pour compiler la classe ?

    (oui je ne maitrise pas du tout le logiciel VisualBasic non plus ... :tops: )

  10. #10
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    Bonjour

    Etant debutant, il serait peut etre plus simple d'utiliser l'artillerie lourde du control ImageList que tu approvisionneras avec tes 2 images...

    Ingredients du code exemple:
    - dropper un control ImageList et l'approvisionner avec tes 2 images ...
    - affecter à sa prop Appearance = Appearance.Button

    code exemple .


    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
     
    Public Class frmBascule
     
     
        Private Sub frmBascule_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            CheckBox1.Appearance = Appearance.Button
            CheckBox1.ImageList = ImageList1
     
            CheckBox1.ImageIndex = 0
        End Sub
     
     
     
     
        Private Sub CheckBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.Click
            CheckBox1.ImageIndex = If(CheckBox1.Checked, 0, 1)
        End Sub
     
     
       End Class
    pour un bouton qui defile "slide" des images ,il faut dropper un timer ou minuterie reglable en plus:

    code exemple .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
     
    Public Class frmSlide
        Private Sub frmBascule_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            CheckBox1.Appearance = Appearance.Button
            CheckBox1.ImageList = ImageList1
     
            CheckBox1.ImageIndex = 0
     
     
            Timer1.Interval = 300
            Timer1.Enabled = False
        End Sub
        Private Sub CheckBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.Click
            Timer1.Enabled = Not Timer1.Enabled
        End Sub
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            SetFrame()
        End Sub
     
     
     
        Private Sub SetFrame()
            Dim i As Integer = CheckBox1.ImageIndex
            If i >= 3 Then
                i = 0
            Else
                i += 1
            End If
            CheckBox1.ImageIndex = i
        End Sub
     
     
     
     
    End Class
    bon code...

  11. #11
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Effectivement on pourrait obtenir le résultat voulu plus simplement et plus rapidement.
    Mais la création d'un contrôle n'est pas une mauvaise idée, ça permet :
    - de jouer avec un concept intéressant des WinForms,
    - d'avoir un contrôle facilement réutilisable.

    @johnmaryn : dans la "boîte à outil" tu dois voir un volet avec le nom de ton projet/namespace. Ton contrôle devrait s'y trouver.
    Tu ne le trouveras pas dans le volet "Tous les Windows Forms".
    Plus je connais de langages, plus j'aime le C.

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2015
    Messages : 14
    Points : 1
    Points
    1
    Par défaut
    Bien pour le moment, je pense que je m'en sors

    Il me reste plus qu'à comprendre pourquoi je n'ai pas mon bouton dans la boite à outils



    Enfin, pour revenir au sujet du slide que nous traiterons dans un deuxième temps éventuellement, je ne parle pas d'un slide d'image, mais d'un slide d'un composant du bouton, et la ce serait 3 images :

    • Image de fond lorsque le curseur est à gauche
    • Le curseur
    • Image de fond lorsque le curseur atteint la butée tout à droite


    Avec si possible, la possibilité de faire en sorte que si le curseur est déplacé et relâché dans la première moitié, il retombe tout à gauche, et s'il est relâché dans la seconde moitié, il tombe tout à droite, pour éviter à l'utilisateur de devoir aller jusqu'à droite avec le curseur pour activer le bouton.


    Citation Envoyé par MABROUKI Voir le message
    Bonjour

    Etant debutant, il serait peut etre plus simple d'utiliser l'artillerie lourde du control ImageList que tu approvisionneras avec tes 2 images...

    Ingredients du code exemple:
    - dropper un control ImageList et l'approvisionner avec tes 2 images ...
    - affecter à sa prop Appearance = Appearance.Button

    code exemple .

    [...]


    [/CODE]
    bon code...

  13. #13
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2015
    Messages : 14
    Points : 1
    Points
    1
    Par défaut
    jopopmk, dans la colonne à gauche je n'ai pas le nom de mon projet affiché ?

    Nom : image1.jpg
Affichages : 911
Taille : 83,1 Ko

  14. #14
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    J'ai fait un test dans un projet qui s'appelle WINFORM (namespace WINFORM également).
    Dans la fenêtre "Boîte à outils", sous le volet "WINFORM composants" (le premier), je trouve bien mon contrôle maison (après recompilation).

    edit : bizarre, moi j'ai ça :
    Nom : boitahoutil.jpg
Affichages : 808
Taille : 40,6 Ko
    Plus je connais de langages, plus j'aime le C.

  15. #15
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2015
    Messages : 14
    Points : 1
    Points
    1
    Par défaut
    Qu'appelez-vous compilation ?

    EDIT : j'ai cliqué sur test > Exécuter > tous les test, et c'est apparut, a tout de suite

  16. #16
    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
    compilation = création du .exe à partir du code source
    ca se fait dans le menu générer

    au cliquer sur le triangle vert qui démarre le programme (ca compile avant de lancer l'exe, = F5)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  17. #17
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Compiler c'est "Générer" en fait (Ctrl+Shft+B)
    C'est peut-être pas le mot adéquat j'avoue, juste l'habitude (je fais du C avec VS).
    Plus je connais de langages, plus j'aime le C.

  18. #18
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2015
    Messages : 14
    Points : 1
    Points
    1
    Par défaut
    Bon, nous progressons, vraiment

    Je trouve désormais mon bouton, avec mes deux images comme souhaité, parfait !

    Cependant :

    En fond, comme le bouton est une image avec des zones transparentes, apparaît le bouton rectangulaire classique du "button" > Peut-on le faire disparaître ?
    Et en arrière plan sur la droite, y'a comme une image qui apparaît, alors que je n'ai rien demandé dans mon image ressource, soit dit en passant, kesako ?

    Pour la taille, je pense que ça doit rapidement se régler avec par exemple :

    MonToggleBouton.autoSize=False
    MonToggleBouton.Height = x
    MonToggleBouton.Width = y

    directement dans la classe pour éviter de devoir le faire manuellement à chaque insertion de bouton ? :/
    Images attachées Images attachées  

  19. #19
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Pour faire disparaitre le cadre de ton bouton de base il faut :
    - mettre l'attribut FlatStyle de ton bouton à Flat,
    - mettre le BorderSize de la FlatApparance de ton bouton à 0.

    Tu peux faire ça directement dans le(s) constructeur(s) de ton contrôle maison à l'aide du mot clé base qui permet d'accéder aux membres et méthodes de la classe mère (dans ton cas System.Windows.Forms.Button ou CheckBox, je sais plus).
    Plus je connais de langages, plus j'aime le C.

  20. #20
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2015
    Messages : 14
    Points : 1
    Points
    1
    Par défaut
    Manuellement, c'est fait, cependant toujours un fond noir. j'ai utilisé une image PNG, dois-je la convertir en GIF ?

    Qu'appel tu constructeur Maison ? la classe ?

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/08/2015, 22h54
  2. Réponses: 1
    Dernier message: 14/09/2012, 19h20
  3. mettre une image sur un bouton bascule
    Par radahm dans le forum IHM
    Réponses: 3
    Dernier message: 12/03/2009, 13h37
  4. Réponses: 2
    Dernier message: 30/04/2007, 10h22
  5. Bouton bascule + images
    Par Marco_SAP dans le forum IHM
    Réponses: 2
    Dernier message: 21/02/2007, 10h40

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