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 :

Boutons arrondis ou de divers formes en VB.Net


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

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

    Informations forums :
    Inscription : Mars 2012
    Messages : 2
    Par défaut Boutons arrondis ou de divers formes en VB.Net
    Je développe mes petites applications avec Visual Basic Dot Net, il m’est arrivé à un certain moment de vouloir améliorer mon interface avec un design significatif sur mon application, tout m’était possible avec PHOTOSHOP, mais je voulais aussi faire en sorte que mes BOUTONS de commande prennent d’autres formes que rectangulaires que me propose ce dernier, cela n’était pas possible à mon niveau,… peut-être vous avez des solutions à mon sujet, je vous prie de les apporter si possible, à fin que je puisse réaliser n’importe quelle forme de BOUTON avec VISUAL BASIC Dot Net.

    Votre solution me sera la bienvenue.

    Merci !

    Cordialement votre

    Gaspard KOYA Dieudonné

  2. #2
    Membre expérimenté Avatar de Neiflheim
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2011
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2011
    Messages : 135
    Par défaut
    Salut,

    Pour ce qui ai des "boutons personnalisés", il faut voir du côté des picturebox. Tu gères l'évènement "click" pour l'action, et pour le design qui change au survol du "bouton", il faut gérer les évènements MouseHover, Mouseleave, Mouseclick

  3. #3
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Si tes boutons ne sont pas carrés, pense à mettre la couleur de background sur transparent et à bien définir quel est le parent de ta picturebox car ce qui apparaitra en transparence sera le contrôle parent et non celui qui se trouve en dessous visuellement.

    J'espère que je suis clair ^^ (perso, j'ai séché sur ce bête truc pendant 2 bonnes heures avant de tomber par hasard sur la solution).

    Bon code,

    Griftou.

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Par défaut
    La solution du picture box pour afficher un bouton personnalisé au niveau du graphisme est la plus simple.

    Ne pas oublier que la zone de réactivité du bouton va correspondre au rectangle du picture box (sauf si tu ajoutes une gestion vérifiant que la souris n'est pas sur une zone transparante de ton dessin). Ceci ne pose pas de problème pour un bouton de type rectangulaire, gène un peu plus pour les formes non conventionnelle. Ex: Sur un bouton en forme de triangle equilatéral, tu as 50% de surface réactive en dehors de ton dessin. Ca risque de donner une mauvaise impression à l'utilisateur.

    De plus cette technique ne permet pas de chevaucher les "zone mortes" des rectange d'image. Il n'est pas possible de faire un empilement de bouton triangulaire pour faire une pyramide par exemple.

    Pour plus de précision, il faut aussi que tu penses à préciser si tu développes une application Winforms, WPF, voir un formulaire web...

  5. #5
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Citation Envoyé par sinople Voir le message
    Ne pas oublier que la zone de réactivité du bouton va correspondre au rectangle du picture box (sauf si tu ajoutes une gestion vérifiant que la souris n'est pas sur une zone transparante de ton dessin). Ceci ne pose pas de problème pour un bouton de type rectangulaire, gène un peu plus pour les formes non conventionnelle.
    Y a moyen de vérifier si le pixel qu'on a cliqué est transparent ???
    Récupérer la position de la souris, ça je sais faire. Vérifier si on a cliqué dans le contrôle, ça je sais faire aussi. Mais récupérer un pixel de l'image du contrôle, là je ne vois pas.

    Citation Envoyé par sinople Voir le message
    De plus cette technique ne permet pas de chevaucher les "zone mortes" des rectange d'image. Il n'est pas possible de faire un empilement de bouton triangulaire pour faire une pyramide par exemple.
    Par curiosité, tu as une solution pour faire ce genre de chose ?

  6. #6
    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
    en windows forms tout est carré et la transparence n'existe pas
    pour avoir des rond, il faut faire utiliser des carrés et dessiner seulement un rond, mais du coup la zone de clic reste carrée
    pour la transparence ca fonctionne quand même un peu certes mais via un bricolage de microsoft, et dans certains cas le bricolage ne suffit pas et on voit des gros défauts

    en wpf par contre tu peux faire tout ce que tu veux graphiquement
    les controles peuvent avoir réellement des formes géométriques au choix, et la transparence est bien gérée
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    en windows forms tout est carré et la transparence n'existe pas
    pour avoir des rond, il faut faire utiliser des carrés et dessiner seulement un rond, mais du coup la zone de clic reste carrée
    pour la transparence ca fonctionne quand même un peu certes mais via un bricolage de microsoft, et dans certains cas le bricolage ne suffit pas et on voit des gros défauts

    en wpf par contre tu peux faire tout ce que tu veux graphiquement
    les controles peuvent avoir réellement des formes géométriques au choix, et la transparence est bien gérée
    Ok donc s'il est nécessaire d'avoir des boutons ronds dans une application, il FAUT se tourner vers WPF. C'est noté.

    Du coup, j'ai une question...
    Pour faire tournoi une application WPF, faut-il autre chose que le framework 4 ?

  8. #8
    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
    on peut quand même faire ca en windows forms, mais c'est plus compliqué
    par exemple gérer le form comme une zone de dessin et recréer ses propres classes de controles avec hittest rond etc...

    wpf est dispo depuis le framework 3
    dans l'absolu plutot utilisé avec le framework 3.5 sp1 sur vs2008 ou framework 4 sur vs 2010 (le designer de vs2008 n'est pas super pratique)
    ca ne nécessite rien de plus

    par contre ca ne s'utilise pas comme du windows forms du tout, et ca peut prendre du temps d'apprendre les nouvelles méthodes et de se débarrasser de ses habitudes
    il y a le xaml qui décrit l'interface (on peut toujours glisser les controles sur le form mais en pratique on écrit ce qu'on veut), langage couplé donc soit à du vb.net soit du c# (ou autre langage .net)

    au passage wpf utilise l'accélération matérielle pour le rendu quand il le peut (= la carte graphique via directX), alors que gdi+ (utilisé par les winforms) ne le fait pas
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  9. #9
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Ok donc à priori, ça tournera.

    Par contre, va falloir apprendre. Je vais être amené sous peu à faire une application avec un plan d'étage sur laquelle l'utilisateur pourra placer des zones (petits boutons ronds) et devra être capable de cliquer dessus.

    Donc autant faire ça bien.

    Perso, apprendre le WPF ne me fait pas peur mais le souci, c'est que j'ai un collègue de plus de 50 balais, qu'il a déjà du mal avec la programmation OO en .NET et que c'est normalement lui qui est chargé de dessiné les interfaces graphiques... (car nos utilisateurs sont des billes qui ne savent pas utiliser les interfaces que je crée car elles sont trop modernes (true story))

    Bref, j'arrête d'à moitié polluer ce topic.

    Merci pol pour les infos

  10. #10
    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
    si si, polluons encore le topic juqu'à être supprimés ^^

    le truc en wpf, c'est que les bindings sont beaucoup plus puissants qu'en windows forms, et il y a des templates, donc concretement, le code .net se résume à je créé une collection d'une classe, et je fais monlistbox.itemssource = macollection
    après côté xaml on défini le rendu d'une classe
    (genre je veux un label avec tel texte dedans, à côté un textbox qui pointe vers telle propriété, un bouton qui appelle telle sub etc...)
    les usercontrol deviennent donc inutiles, et modifier l'appli graphiquement ne demande pas de modifications sur le code qui fait marcher l'appli ^^
    en windows forms quand on pose un controle sur un form, il a un nom par défaut, en wpf ce n'est pas obligatoire, et quand on arrive à nommer aucun controle c'est qu'on réussi à assimiler le principe (car un controle non nommé ne peut pas etre utilisé dans le code .net)

    sinon moi ca fait 3 ans que je fais un peu de wpf le week end, et j'ai encore du mal
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  11. #11
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    sinon moi ca fait 3 ans que je fais un peu de wpf le week end, et j'ai encore du mal
    Merci.. C'est encourageant !

  12. #12
    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
    Citation Envoyé par griftou Voir le message
    Merci.. C'est encourageant !
    lol, ce n'est pas le but, surtout qu'en fait j'ai oublié de dire un truc important, c'est encore plus sympa à utiliser que windows forms, ca permet tout, le layout est beaucoup pratique (je veux dire par là la mise en forme des fenetres) et le rendu plutot sympa
    faire des fenetres carrées au bord arrondi ca prend 10 lignes de code par exemple
    une autre chose pratique, c'est que si ton appli est finie et que tes boutons sont gris partout, tu peux en 3 lignes de code dire que tous les boutons seront maitenant bleus
    et puis en nombre d'heures j'y ai pas passé énormément de temps non plus, si t'y passe 8 heures par jour ca doit aller plus vite ^^
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  13. #13
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Bin là depuis 2h, suis en train de suivre ceci :
    http://www.wpftutorial.net/LearnWPFin14Days.html

    On verra ce que ça donne si j'arrive à suivre le programme en une semaine ^^ (j'ai un agenda un peu creu au taff pour le moment, ça tombe au poil !)

  14. #14
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Par défaut
    Citation Envoyé par griftou Voir le message
    Y a moyen de vérifier si le pixel qu'on a cliqué est transparent ???
    Récupérer la position de la souris, ça je sais faire. Vérifier si on a cliqué dans le contrôle, ça je sais faire aussi. Mais récupérer un pixel de l'image du contrôle, là je ne vois pas.



    Par curiosité, tu as une solution pour faire ce genre de chose ?
    Ben à priori si tu sais :
    - retrouvé les coordonnées du click de la souris (par rapport au contrôle)
    - retrouvé la valeur d'un pixel sur une image

    Il est alors fondamentalement possible de déterminer si oui ou non le curseur se balade sur le bouton ou sur l'habillage transparent du contrôle et contrôler le curseur qui s'affiche et l'annulation d'un évenement click.

    Autrement tu peux aussi utiliser parallèlement à l'image une information vectoriel déterminant une ou plusieurs forme et savoir ensuite (toujours avec les coordonnées de la souris) sur quel forme tu te trouves. Cette solution étant probablement nettement plus rapide et optimisée (un peu plus contraignant car on doit changer les définitions de zone en plus de l'image en cas de modification). On retrouve ce principe entre autres en HTML avec les images possédants des zones "clickable".

    Autrement tu peux faire du WPF aussi (ou faire des boutons carrés comme tous le monde vu que c'est rarement un facteur clé de réussite...)

  15. #15
    Membre Expert Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Par défaut
    Bonjour, quelques précisions à propos de WPF, et des conseils que j'aurais aimé recevoir il y a quelques années :
    * Ces applis sont compatibles XP mais le résultat y est poussif (perfs, absence de vsync, etc). WPF ne s'exprime vraiment qu'avec Vista ou Seven et un chipset graphique pas trop ancien (deux ou trois ans chez Intel).
    * Oublie les convertisseurs, utilise directement les propriétés de ton VM. Ok, ça se discute.
    * System.Windows.Interactivity est ta nouvelle meilleure amie (attached behaviors).
    * Besoin de deux boutons similaires mais l'un doit avoir des coins ronds et pas l'autre ? Utiliser la propriété attachée Border.BorderThickness plutôt que de copier-coller cinquante lignes de template. Use et abuse des proprios attachées.
    * Le choix de passer à WPF peut encore se discuter aujourd'hui du fait du premier point. Mais c'est dès à présent une décision tout à fait raisonnable pour nombre de produits et, en tant que programmeur, il est plus que temps de s'y mettre.

  16. #16
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Bon bin le chef a dit que les zones seront des carrés ^^

    N'empêche, ça me tente bien du coup cette histoire de wpf... Va falloir que j'me trouve un truc à faire chez moi en soirée ou le w-e. Je sens que je vais être parti pour faire encore un yahtzee XD

    Merci à tous les précisions !

    Et j'espère que GaspardKOYA aura eu les explications qu'il attendait par la même occasion...(j'en profite pour lui rappeler que je n'ai pas compris à quoi il faisait référence dans le mp qu'il m'a envoyé).

    ++

    Griftou.

  17. #17
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Telerik propose dans son pack de contrôles un contrôle qui permet de gérer des plans (et notamment des plans d'étage).
    http://www.telerik.com/products/wpf/map.aspx

  18. #18
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Citation Envoyé par Nathanael Marchand Voir le message
    Telerik propose dans son pack de contrôles un contrôle qui permet de gérer des plans (et notamment des plans d'étage).
    http://www.telerik.com/products/wpf/map.aspx
    Ouais mais c'est pour WPF au vu de l'url.

    Puis depuis que je bosse ici, je n'ai jamais vu qu'on avait acheté des packs de controles tiers. Nous ne sommes pas une boite de consultance. Juste un petit service informatique dans une entreprise de distribution pour répondre aux demandes de gestion interne.

  19. #19
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Citation Envoyé par griftou Voir le message
    Ouais mais c'est pour WPF au vu de l'url.

    Puis depuis que je bosse ici, je n'ai jamais vu qu'on avait acheté des packs de controles tiers. Nous ne sommes pas une boite de consultance. Juste un petit service informatique dans une entreprise de distribution pour répondre aux demandes de gestion interne.
    Raison de plus! Ca coute généralement moins cher que de le faire soi même

Discussions similaires

  1. Bouton qui a ouvert le form
    Par totoche dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 13/11/2007, 12h07
  2. Bouton copier coller dans un forms
    Par patrickmo dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/06/2007, 23h04
  3. Apparence des boutons de commande sur les forms
    Par azopei dans le forum Access
    Réponses: 2
    Dernier message: 17/02/2006, 14h19
  4. Gérer les boutons Minimize,Close d'une forme
    Par Chupakabra dans le forum Langage
    Réponses: 2
    Dernier message: 05/10/2005, 11h42
  5. [VC++ 6] Boutons permettant d'afficher une form
    Par cooladn dans le forum MFC
    Réponses: 3
    Dernier message: 09/12/2004, 16h17

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