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. #21
    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
    Mon bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class TagleButton : System.Windows.Forms.Button {
    	// le constructeur en question
    	public TagleButton() {
    		base.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
    		base.FlatAppearance.BorderSize = 0;
    	}
    }
    Pour ton fond c'est bizarre qu'il soit noir (moi il est "gris système" par défaut).
    Par contre d'après cette fiche MSDN la gestion de la transparence risque de faire suer un poil.

    Pour ton image ne change rien, le PNG est le mieux (gère la vraie transparence contrairement au gif).
    Plus je connais de langages, plus j'aime le C.

  2. #22
    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
    Je ne vois pas où mettre la structure de ton code ?

    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
     
        Protected Overrides Sub Onpaint(Pevent As System.Windows.Forms.PaintEventArgs)
            If Me.Checked Then
                Pevent.Graphics.DrawImage(My.Resources._ON, 1, 1)
            Else
                Pevent.Graphics.DrawImage(My.Resources._OFF, 1, 1)
            End If
        End Sub
     
    End Class

    Enfin, concernant l'image de fond, c'est assez étrange, Avant de démarrer et simuler le programme, je distingue que le noir est en fait une espèce de capture d'écran des trois boutons "catégorie" "Alphabétiques" et "Pages de propriétés" de l'onglet "Propriétés" situé tout à droite, comme un bug.

    Quand on lance, les morceaux de boutons disparaissent pour laisser place à un fond noir ? Vraiment étrange !

    EDIT :

    Pour info :

    Nom : Image3.jpg
Affichages : 115
Taille : 4,1 Ko

  3. #23
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 150
    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 150
    Points : 25 066
    Points
    25 066
    Par défaut
    pour le fond aléatoire, j'ai oublié de te donner une ligne de code, à mettre au début du onpaint (sinon c'est ce qu'il y a à l'écran à cet endroit au moment du dessin ^^)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pevent.Graphics.clear(me.backcolor)
    concernant le constructeur, jopopmk est joueur il t'a mis du code c# (qui peut se traduire en vb.net néanmoins)

    le constructeur est la méthode qui est appelé quand on créé une instance de la classe
    en vb.net il se fait par un sub new

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public sub new
            me.FlatStyle = System.Windows.Forms.FlatStyle.Flat
            me.FlatAppearance.BorderSize = 0
    end sub
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #24
    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
    Quel coquin ..


    Parfait Pol63 !

    Tout fonctionne à merveille côté Objet. Aller, dernière question,

    J'ai essayé, en gardant la même syntaxe (peut être un grossière erreur) de paramétrer de la même manière l'autosize et la taille final, mais mes trois pauvres lignes, bien qu'acceptée par le compileur ne fonctionnent pas

    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
    Public Class MonToggleBouton
        Inherits CheckBox
     
        Protected Overrides Sub Onpaint(Pevent As System.Windows.Forms.PaintEventArgs)
            Pevent.Graphics.Clear(Me.BackColor)
            If Me.Checked Then
                Pevent.Graphics.DrawImage(My.Resources._ON, 0, 0)
            Else
                Pevent.Graphics.DrawImage(My.Resources._OFF, 0, 0)
            End If
        End Sub
     
        Public Sub New()
            Me.FlatStyle = System.Windows.Forms.FlatStyle.Flat
            Me.FlatAppearance.BorderSize = 0
            Me.AutoSize = False
            Me.Height = 160
            Me.Width = 60
        End Sub
     
    End Class
    EDIT : Tout fonctionne presque à merveille.

    Quand j'insère le bouton dans un UserForm, Ok, pas de fond noir,
    Quand j'insère le bouton dans un Tabcontrol, le fond noir revient ?

  5. #25
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 150
    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 150
    Points : 25 066
    Points
    25 066
    Par défaut
    en effet

    je savais que le tabcontrol était pourri, mais à ce point là ...
    par contre là je ne comprends pas trop pourquoi il a un comportement bizarre, je viens de faire le test
    dès qu'on pose un custom control sur un tabcontrol, vs est foutu, property grid hs etc... et vs qui ne se ferme plus

    il faut surement redévelopper un tabcontrol (j'ai jamais utilisé celui d'origine de toute façon ^^)

    et pour info windows forms ca date de plus de 20 ans
    vb.net existe depuis 2003 (on va oublier la version 2002) et se base sur windows forms
    c'est pas forcément génial, enfin on peut tout améliorer mais en grattant un peu de code
    depuis 2008 il y a un nouveau framework graphique (wpf)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #26
    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
    Pour le moment je souhaite conserver le VB.NET, je commence à bien l'aimer

    Sauf si tu arrives à suffisamment me convaincre et attention faudra bien argumenter, là je pourrais étudier un nouveau langage de programmation pour le projet.


    Note : Si tu le souhaite je peux t'envoyer la structure actuelle par mail.

    A+

    EDIT :

    Bon, je crois que je suis dans la M___E J'ai du faire un fausse manip (?) et je n'arrive plus à lancer l'application, "Visual Studio ne peux pas lancer le débogage, car la cible du débogage "//" est manquante. Et tous mes boutons ont disparus dans la Form .... Quelqu'un à une corde ?

  7. #27
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 150
    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 150
    Points : 25 066
    Points
    25 066
    Par défaut
    peut etre un endroit ou il faut choisir debug ou release
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #28
    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
    Re,

    désolé pour le C# c'est le langage que j'utilise pour le .NET, j'ai un peu de mal avec le VB.

    Petites précisions : VB.NET, comme C#, sont des langages utilisables pour les applications .NET. Les application .NET peuvent être des WinForms (ce que tu fais), des WebForms (les appli web avec ASP.NET) ou du WPF (les WinForms version 2.0). Tu peux donc très bien passer ton application en WPF tout en codant en VB.NET.

    Je connais très peu WPF (je l'ai découvert ici y'a quelques temps mais ne m'en suis jamais vraiment servi). Les avantages que je lui connais sont la performances et la gestion des bindings. Y'en a certainement plein d'autres.
    Quand on a fait du WinForm pendant un temps il y a un bon moment d'adaptation au WPF. Mais comme tu commences juste il est peut-être judicieux de passer directement au WPF.

    Pour ton problème, as-tu modifié des paramètres de ton projet ? As-tu plusieurs projets ?
    Le truc étonnant c'est que "la cible du débogage" est normalement un exe, pas un répertoire.
    Plus je connais de langages, plus j'aime le C.

  9. #29
    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 tout le monde !

    Alors concernant les paramètres, je n'ai de mémoire rien changé. Peut-Être en faisant une mauvaise combinaison de touche ?

    Je suis bien en "Debug" et "Any PCU"

    Voulez-vous le message dans son intégralité ?



    Pour info je tourne sous MAC (je vais me faire luncher) et pour les rares logiciels que j'ai besoin d'utiliser chez Windows, j'ai une machine virtuelle, mais j'e n'ai jamais rencontré aucun problème ... :/
    Je ne pense pas que ça vienne de là.

Discussions similaires

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

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