Forum de Fandeonepiece2

Bon dev :)


    [VB.net] [SZ utilisable aussi sous VS mais nécéssite une légère adaptation] Créer une form personnalisé

    Partagez
    avatar
    Aze (admin)
    Admin
    Admin

    Messages : 435
    Date d'inscription : 03/05/2014
    Age : 16
    Localisation : France

    [VB.net] [SZ utilisable aussi sous VS mais nécéssite une légère adaptation] Créer une form personnalisé

    Message par Aze (admin) le Mar 6 Mai - 18:25

    Bonjour a tout le monde ,
    Alors voila je vais démontrer qu'il n'est pas impossible de créer sa form   
    Alors déjà dans SZ créer une fenêtre "WindowsForm". 
    Puis regarder les propriétés de la form ; il y a "FormBorderStyle"  . 
    Ceci représente déjà l'aspect de la barre de légende (la barre en haut de votre logiciel avec les bouton "réduire, agrandir et fermer". 
    Donc changer la propriété actuelle par "None". Vous aurez ainsi votre logiciel sans la barre de légende   
    Maintenant vous allez créer un panel qui aura la form que vous souhaitez pour votre nouvelle barre de légende  
    Je vous conseil de changer la couleur de fond (BackColor) de ce panel.
    Même mieux vous pouvez même choisir une image qui fera le fond de votre form !
    Donc on vas mettre une image : 
    Mettez celle-ci en ressource :

    Puis retournez sur les propriétés de votre panel ; modifié la propriété "BackGroundImage" en cliquant sur la petite flèche a coté du nom. Mettez comme nouvelle valeur cette image. 
    Puis changez la valeur de "BackGroundImageLayout" en mettent "Strech". 
    Maintenant il vous faudra les image qui vont correspondre au bouton "réduire, agrandir et fermer". 
    Je propose :
     pour fermer
     a garder dans les ressource pour après  
     pour agrandir
     a garder dans les ressource pour après  
     pour réduire
     a garder dans les ressource pour après  
    Voila avec ces image dans les ressources vous aller créer 3 PictureBox aux endroit où vous voudrez placer les 3 boutons.
    Changer les propriété Image des ces 3 PictureBox avec celle-ci :
       
    Voila vous avez la form mais ça ne sert a rien comme ça  
    Donc pour commencé vous allez faire exactement ce que je vais dire et sans changer les code  
    Dans la racine de ta fenêtre (premier onglet dans l'éditeur de fonctions), avec Exécuter du code VB.net, met :
    CODE:
    Code:
    Private IsFormBeingDragged As Boolean = False 'Used for custom move code, scroll down to see the actual code.
        Private MouseDownX As Integer
        Private MouseDownY As Integer

    Puis l'évènement MouseMove de ton panel ; tu met des code VB :
    CODE:
    Code:
    If IsFormBeingDragged Then
                Dim temp As Drawing.Point = New Drawing.Point()
                temp.X = Me.Location.X + (e.X - MouseDownX)
                temp.Y = Me.Location.Y + (e.Y - MouseDownY)
                Me.Location = temp
                temp = Nothing
            End If

    Après, dans l'évènement MouseDown de ton panel  
    CODE:
    Code:
    If e.Button = System.Windows.Forms.MouseButtons.Left Then
                IsFormBeingDragged = True
                MouseDownX = e.X
                MouseDownY = e.Y
            End If

    Et pour finir, évènement MouseUp  
    CODE:
    Code:
    If e.Button = System.Windows.Forms.MouseButtons.Left Then
                IsFormBeingDragged = False
            End If

    Voila maintenant on peux déplacer la fenêtre avec ce panel comme si c'était une vrai barre de légende  .
    maintenant on revient aux PictureBox-bouton  :
    Pour  :
    Tu fait l'évènement Click :
    Modifié une propriété d'un control : Modifié Me ; System.Windows.Forms.Form, la propriété WindowsState ; System.Windows.Forms.FormWindowsState et la valeur 1
    Puis maintenant je coté Jolie  :
    Évènement MouseMove :
    Modifié PictureBox_Reduire, la propriété Image et la valeur %(LaVariableQuiContient)%.
    Maintenant évènement MouseLeave  :
    Modifié PictureBox_Reduire, la propriété Image et la valeur %(LaVariableQuiContient)%.
    Voila on vient de faire un magnifique bouton avec sa fonction  Mais bon il y en a 2 autres  :
    Mais je vais pas répéter MouseMove et MouseLeave n'oubliez juste pas de changer les images...
    Donc Important par contre pour le PictureBox-Bouton "agrandir"  ; évènement Click :
    Obtenir la valeur d'un contrôle : Obtenir la valeur .WindowsState de Me. et enregistrer dans %(Agrandi_ou_pas)%
    Condition : Si %(Agrandi_ou_pas)% est = à 0, alors : Modifié .WindowsState de Me. et la valeur 2
    Condition : Si %(Agrandi_ou_pas)% est = à 2, alors : Modifié .WindowsState de Me. et la valeur 0
    Voila et donc le PictureBox-Bouton "fermer" a comme évènement click "Arrêter l'application".
    On as tout les PictureBox-Bouton ?  Oui  !
    Alors on vient au titre : un simple label qui contient en propriété .text le nom que vous donnez a votre fenêtre  et qui aura comme propriété BackColor "Transparent"(2ème onglet "web")
    SURTOUT pour TOUT ce qui a dans la nouvelle barre de légende ne pas oubliez la propriété Anchor qui permet de garder les bord des composant au même niveau que les bord de la form  
    Et dans un coin a gauche une autre PictureBox qui contiendra l’icône...

    cordialement
    avatar
    Ghost Eagle
    semi-modo
    semi-modo

    Messages : 174
    Date d'inscription : 03/05/2014
    Age : 15
    Localisation : Cameroun

    Re: [VB.net] [SZ utilisable aussi sous VS mais nécéssite une légère adaptation] Créer une form personnalisé

    Message par Ghost Eagle le Mar 6 Mai - 18:43

    Salut,

    super tutoriel. Merci!
    avatar
    Aze (admin)
    Admin
    Admin

    Messages : 435
    Date d'inscription : 03/05/2014
    Age : 16
    Localisation : France

    Re: [VB.net] [SZ utilisable aussi sous VS mais nécéssite une légère adaptation] Créer une form personnalisé

    Message par Aze (admin) le Mar 6 Mai - 18:45

    re,
    merci
    cordialement
    avatar
    polien
    semi-modo
    semi-modo

    Messages : 33
    Date d'inscription : 03/05/2014
    Age : 21
    Localisation : Provence

    Re: [VB.net] [SZ utilisable aussi sous VS mais nécéssite une légère adaptation] Créer une form personnalisé

    Message par polien le Mar 6 Mai - 20:32

    re,

    c'est le copier-coller du tuto de gipse sur le site de Etienne Baudoux Razz
    http://forumvelersoftware.bbactif.com/t739-tutoriel-creer-sa-form
    avatar
    Aze (admin)
    Admin
    Admin

    Messages : 435
    Date d'inscription : 03/05/2014
    Age : 16
    Localisation : France

    Re: [VB.net] [SZ utilisable aussi sous VS mais nécéssite une légère adaptation] Créer une form personnalisé

    Message par Aze (admin) le Mar 6 Mai - 20:39

    re,
    je sais XD
    cordialement
    avatar
    Ghost Eagle
    semi-modo
    semi-modo

    Messages : 174
    Date d'inscription : 03/05/2014
    Age : 15
    Localisation : Cameroun

    Re: [VB.net] [SZ utilisable aussi sous VS mais nécéssite une légère adaptation] Créer une form personnalisé

    Message par Ghost Eagle le Mar 6 Mai - 22:28

    re,

    Ah ouais ! mais très bon tuto quand même.
    avatar
    Aze (admin)
    Admin
    Admin

    Messages : 435
    Date d'inscription : 03/05/2014
    Age : 16
    Localisation : France

    Re: [VB.net] [SZ utilisable aussi sous VS mais nécéssite une légère adaptation] Créer une form personnalisé

    Message par Aze (admin) le Mar 6 Mai - 22:30

    re,
    mais pas de moi mais j'avais trop la flemme de tout réecrire
    cordialement
    avatar
    Aze (admin)
    Admin
    Admin

    Messages : 435
    Date d'inscription : 03/05/2014
    Age : 16
    Localisation : France

    Re: [VB.net] [SZ utilisable aussi sous VS mais nécéssite une légère adaptation] Créer une form personnalisé

    Message par Aze (admin) le Mer 12 Nov - 16:43

    Bonjour,
    le tuto est aussi diponible sur OCR Wink
    http://openclassrooms.com/courses/creer-une-form-personnalisee-en-vb-net
    cordialement

    Contenu sponsorisé

    Re: [VB.net] [SZ utilisable aussi sous VS mais nécéssite une légère adaptation] Créer une form personnalisé

    Message par Contenu sponsorisé


      La date/heure actuelle est Mer 13 Déc - 17:44