Aller au menu - Aller au contenu

Icône Les menus

Avatar
Mise à jour : 13/12/2010
Difficulté : Facile Facile Creative Commons BY-NC-SA
23 410 visites depuis 7 jours, dont 384 sur ce chapitre classé 14/786
Vous savez déjà faire un joli programme avec tout ça !

Mais joli c'est pas assez, il faut qu'il soit magnifique (je rigole, je rigole :p ).
Bon, fini les plaisanteries, nous allons passer aux menus.

Vous savez, les menus, la barre qui est en haut de votre navigateur favori par exemple avec "Fichier", "Édition" ...
Et celle du dessous aussi avec les images (la barre d'outils) !

Eh bien oui, nous allons apprendre à faire cela !

Donc, tout d'abord pour les habitués du VB6 eh bien je peux vous dire que ça va être une partie de plaisir ! L'IDE nous mâche le travail ("Pré-mâché et pré-digéré ..." :-° ).

Mettons nous-y tout de suite !
Sommaire du chapitre :
Icône du chapitre
Chapitre précédent Sommaire Chapitre suivant

Présentation des menus

Vous devez voir dans votre boîte à outils un sous-menu "Menus et barres d'outils", comme vous pouvez le constater, ces objets nous permettrons de créer : des menus (1), une barre d'outils (2), une barre de statut (3) et un menu contextuel (4) (menu que vous voyez s'afficher lors du clic droit sur la souris).

(1)Image utilisateur
(2)Image utilisateur
(3)Image utilisateur
(4)Image utilisateur

Passons tout de suite au menu le plus intéressant : la barre de menu (1) !

La barre de menus

Création graphique



Comme je vous l'ai dit, L'IDE va grandement nous mâcher le travail : un assistant est fourni avec pour créer ces menus.

Mettons-nous y : prenez l'objet MenuStrip et insérez-le sur votre feuille (feuille vide de préférence :p )

Image utilisateur

Vous voyez donc que ce menu se place automatiquement en haut de votre feuille, vous ne le voulez pas en haut, vous êtes pénibles !, pas de problème une propriété permet de choisir la position dans la feuille de ce menu (gauche, droite, etc...), ou un superbe objet : le ToolStripContainer.

Cette propriété est Dock, et comme notre IDE est gentil, il nous offre la possibilité de paramétrer cette propriété en cliquant sur la petite flèche en haut à droite de notre menu :

Image utilisateur

Bon, passons au remplissage de ce menu !

Comme vous le voyez, lorsqu'il est sélectionné, le menu vous affiche un petit "Tapez ici" (non, ne sortez pas votre marteau !), comme quoi on ne peut plus facile !

La première "ligne" correspond aux menus principaux (comme fichier, édition ...) Écrivez donc le nom de votre premier menu (pour moi ce sera fichier :p ). Vous devez voir lors de l'écriture de ce premier menu 2 cases supplémentaires (qui sont également masochistes apparemment), celle du dessous correspond au premier sous-menu de notre premier menu (Fichier -> Nouveau par exemple), la seconde est celle qui nous permet de créer un second menu.

Ne grillons pas les étapes, remplissons déjà notre premier menu !

Pour moi ce sera "Reset" et celui en dessous "Quitter".

Il y a encore des Tapez qui apparaissent, je fais quoi ?

Eh bien ces cases permettent de créer des sous-menus qui vous offrent plusieurs choix.

Comme vous allez le voir, la possibilité de créer notre menu entièrement personnalisé est bien réelle !

Bon, je crée un second menu, faites de même :

Image utilisateur

Puis, pour finir un petit label au centre de la feuille : LBL_TEXTE.

Evènements


Maintenant, attaquons la gestion des évènements !

Ces évènements seront créés grâce à l'assistant Visual studio comme le clic sur un bouton : un double clic sur le sous-menu que vous voulez gérer, le code s'ajoute automatiquement :

Code : VB.NET
1
2
3
Private Sub BonjourToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BonjourToolStripMenuItem.Click

End Sub

Faites cela pour tous les sous-menus (sinon à quoi ça sert de les créer :p ).

Je peux le faire sur les menus comme "Fichier" aussi ?

Oui bien sûr, si vous en trouvez l'utilité !

Bon, voilà donc le code dûment rempli :
Code : VB.NET
 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
Public Class Form1

    Private Sub ResetToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ResetToolStripMenuItem.Click
        Me.LBL_TEXTE.Text = ""
    End Sub

    Private Sub QuitterToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles QuitterToolStripMenuItem.Click
        End
    End Sub

    Private Sub BonjourToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BonjourToolStripMenuItem.Click
        Me.LBL_TEXTE.Text = "Bonjour !"
    End Sub

    Private Sub AuRevoirToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AuRevoirToolStripMenuItem.Click
        Me.LBL_TEXTE.Text = "Au revoir."
    End Sub

    Private Sub CiaoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CiaoToolStripMenuItem.Click
        Me.LBL_TEXTE.Text = "Ciao."
    End Sub

    Private Sub ByeByeToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ByeByeToolStripMenuItem.Click
        Me.LBL_TEXTE.Text = "Bye bye."
    End Sub

    Private Sub AstalavistaBabyToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AstalavistaBabyToolStripMenuItem.Click
        Me.LBL_TEXTE.Text = "Astalavista baby !"
    End Sub

End Class


Eh oui, tant de lignes pour si peu ! Je pense que vous avez compris l'utilité ce que doit faire le programme : lors du clic sur une sous-menu de "Afficher", il affiche ce texte, lors du clic sur Reset, il efface, et lors du clic sur Quitter, il quitte le programme (le end effectuant cette action).

Bon, vous vous souvenez des MsgBox ?

Eh bien elles vont nous être utiles ici : nous allons mettre une confirmation de sortie du programme.

Je pense que vous êtes capables de le faire tout seul mais bon, je suis trop aimable :
Code : VB.NET
1
2
3
If MsgBox("Souhaitez-vous vraiment quitter ce magnifique programme ?", 36, "Quitter") = MsgBoxResult.Yes Then
   End
End If


Pourquoi 36 en second argument ?

Vous ne vous en souvenez pas ? Je vous redonne le tableau :
MembreValeurDescription
OKOnly 0 Affiche le bouton OK uniquement.
OKCancel 1 Affiche les boutons OK et Annuler.
AbortRetryIgnore 2 Affiche les boutons Abandonner, Réessayer et Ignorer.
YesNoCancel 3 Affiche les boutons Oui, Non et Annuler.
YesNo 4 Affiche les boutons Oui et Non.
RetryCancel 5 Affiche les boutons Réessayer et Annuler.
Critical 16 Affiche l'icône Message critique.
Question 32 Affiche l'icône Requête d'avertissement.
Exclamation 48 Affiche l'icône Message d'avertissement.
Information 64 Affiche l'icône Message d'information.
DefaultButton1 0 Le premier bouton est le bouton par défaut.
DefaultButton2 256 Le deuxième bouton est le bouton par défaut.
DefaultButton3 512 Le troisième bouton est le bouton par défaut.
ApplicationModal 0 L'application est modale. L'utilisateur doit répondre au message avant de poursuivre le travail dans l'application en cours.
SystemModal 4096 Le système est modal. Toutes les applications sont interrompues jusqu'à ce que l'utilisateur réponde au message.
MsgBoxSetForeground 65536 Spécifie la fenêtre de message comme fenêtre de premier plan.


Et voilà votre programme qui affiche ce que vous voulez et qui vous demande une confirmation de fermeture :

Image utilisateur

Les différents contrôles des menus

Je viens de vous montrer un menu classique avec du texte comme contrôle, mais vous en voulez plus n'est-ce pas :p ?

Eh bien, c'est parti : nous allons créer des Combobox (listes déroulantes) et des TextBox.

Dans le menu ??

Eh bien oui ! Oui, vous ne devez pas en voir souvent mais ça peut être utile !

Donc, pour avoir accès à ces contrôles supplémentaires il faut cliquez sur la petite flèche disponible à côté du "Tapez ici" :

Image utilisateur

Vous voyez que s'offre à vous les contrôles tant désirés !
Eh bien personnalisons un peu notre menu pour arriver à ça :

Image utilisateurImage utilisateur


Sachant que dans la ComboBox (Message prédéfini), j'ai remis les messages d'avant (vous devez vous servir de la propriété "collection" de cette combobox pour en assigner les choix ou alors passer par le code VB, au choix).

Schématiquement :
  • Fichier
    • Reset
    • Quitter
  • Affichage
    • Message prédéfini
      • Combobox
        • Bonjour !
        • Au revoir.
        • Ciao.
        • Bye bye.
        • Astalavista baby !
    • Message personnalisé
      • TextBox
      • Ecrire


Ce qui est assez gênant avec cet assistant c'est que les noms qui sont entrés automatiquement sont assez cotons a repérer, avec une textbox, une combobox, ça passe mais au delà aie ! Alors prenez l'habitude de les renommer : un tour sur les propriétés et on change : CB_MENU et TXT_MENU.

Bon, ensuite on utilise notre fidèle assistant pour créer les évènements correspondants : sur le clic du bouton "Ecrire" et lors du changement de la ComboBox.

Si vous avez utilisé l'assistant pour créer l'évènement de la ComboBox, lorsqu'elle est dans un menu, l'évènement est le Clic, il faut le changer :
Code : VB.NET
1
Private Sub CB_MENU_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CB_MENU.SelectedIndexChanged


Supprimez les évènements relatifs aux anciens sous-menus (Bonjour ...) mais gardez ceux correspondant aux sous-menus Reset et Quitter.

Écrivons maintenant notre code : côté combobox, on veut afficher le texte correspondant à l'item de la combobox (je vous ai donné la solution là :p ), eh oui, l'évènement SelectedItem sera utilisé, le selectedValue n'étant pas disponible dans cette façon d'utiliser la combobox.

Ce qui nous donne :
Code : VB.NET
1
2
3
Private Sub CB_MENU_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CB_MENU.SelectedIndexChanged
        Me.LBL_TEXTE.Text = Me.CB_MENU.SelectedItem
    End Sub


Bon, pour notre bouton Ecrire, c'est pas sorcier : on récupère la valeur de la txtbox et on l'affiche ; voilà le tout :
Code : VB.NET
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Public Class Form1

    Private Sub ResetToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ResetToolStripMenuItem.Click
        'Efface le label
        Me.LBL_TEXTE.Text = ""
    End Sub

    Private Sub QuitterToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles QuitterToolStripMenuItem.Click
        'Fermeture avec confimation
        If MsgBox("Souhaitez-vous vraiment quitter ce magnifique programme ?", 36, "Quitter") = MsgBoxResult.Yes Then
            End
        End If
    End Sub

    Private Sub CB_MENU_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CB_MENU.SelectedIndexChanged
        'Ecrit le texte de la combobox lros du changement d'index
        Me.LBL_TEXTE.Text = Me.CB_MENU.SelectedItem
    End Sub

    Private Sub EcrireToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EcrireToolStripMenuItem.Click
        'Ecrit le texte de la textbox lors de l'appui sur "ecrire"
        Me.LBL_TEXTE.Text = Me.TXT_MENU.Text
    End Sub
End Class


Image utilisateur

Image utilisateur


Comme vous, le voyez VB est assez facile a utiliser dans différentes situations puisque les propriétés ne changent pas.

Bon, maintenant que vous savez ça, on ne se repose pas sur ses lauriers, on avance ^^ .

La barre de statut

Au tour de la barre de statut : c'est la barre qui vous indique le statut de l'application (si !).

Donc, à quoi va nous servir cette barre ?

Eh bien à afficher, le statut de votre application par exemple, ou alors tout simplement mettre des boutons dessus :p !

Bon, je vais vous montrer une manière d'utiliser à bon escient cette barre, après, à vous de faire ce que vous voulez et de trifouiller toutes ses propriétés !

Bon, créons déjà la dite barre : toujours dans le menu "Menus et barres d'outils" vous choisissez "StatusStrip".

Vous l'intégrez à la feuille, elle se place en bas (normal), vous pouvez changer en agissant encore une fois sur la propriété "Dock".

Ajoutez 2 contrôles : un label et une progressbar. La progressbar est accessible, comme pour la combobox de la partie précédente, avec la petite flèche.

Image utilisateur

Renommez-les (bien sûr je vous dis de les renommer, mais si vous voulez vos noms à vous, ou tout simplement si vous voulez garder ceux d'origine, je ne vous oblige pas, je ne suis pas votre dieu quand même ?) : LBL_STATUT, PGB_STATUT.

Nous allons nous servir de la progressbar comme indication d'avancement. Évidemment, ici, afficher un Label n'est pas sorcier, notre ordinateur ne va pas réfléchir plus d'une milliseconde (oui, même sous windows 3.1). Nous allons donc simuler une pause.

Pour utiliser cette progressbar comme indication voici une astuce. L'or d'un transfert comme un téléchargement, calculez la taille totale du fichier, le taux de transfert, ressortez le temps, et ajustez votre progressbar à ce temps, et voilà comment s'en servir comme source d'indication, mais bon ce n'est pas pour tout de suite.


Recréons donc un petit timer pour simuler le temps d'attente (TIM_STATUT) et utilisons le même procédé que le chapitre sur les timers.

Nous allons donc faire progresser la barre et afficher dans le label le statut.

C'est un exercice que vous pouvez évidemment faire.

Voici donc une solution :
Code : VB.NET
 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
Public Class Form1

    Private Sub ResetToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ResetToolStripMenuItem.Click
        'Efface le label
        PauseFactice()
        Me.LBL_TEXTE.Text = ""

    End Sub

    Private Sub QuitterToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles QuitterToolStripMenuItem.Click
        'Fermeture avec confimation
        If MsgBox("Souhaitez-vous vraiment quitter ce magnifique programme ?", 36, "Quitter") = MsgBoxResult.Yes Then
            End
        End If
    End Sub

    Private Sub CB_MENU_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CB_MENU.SelectedIndexChanged
        'Ecrit le texte de la combobox lros du changement d'index
        PauseFactice()
        Me.LBL_TEXTE.Text = Me.CB_MENU.SelectedItem

    End Sub

    Private Sub EcrireToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EcrireToolStripMenuItem.Click
        'Ecrit le texte de la textbox lors de l'appui sur "ecrire"
        PauseFactice()
        Me.LBL_TEXTE.Text = Me.TXT_MENU.Text

    End Sub

    Private Sub PauseFactice()
        LBL_STATUT.Text = "Chargement ..."
        PGB_STATUT.Value = 0
        TIM_STATUT.Enabled = True
    End Sub

    Private Sub TIM_STATUT_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TIM_STATUT.Tick
        'Si la progressbar est arrivée au bout, on désactive le timer
        If Me.PGB_STATUT.Value = 100 Then
            Me.TIM_STATUT.Enabled = False
            LBL_STATUT.Text = "Prêt"
        Else
            'Augmente de 1 la progressbar
            Me.PGB_STATUT.Value = Me.PGB_STATUT.Value + 1
        End If
    End Sub

End Class

Bon, pour ce code, je ne me suis pas trop fatigué : j'ai copié notre code dans le chapitre sur les timers. La "pause" n'est pas effectuée le texte s'affiche pendant la progression, oui c'est mal fait. Excusez-moi, mais bon c'est pour le principe ! L'idéal aurait été de placer un sémaphore (un flag) le tout avec une boucle while.

Image utilisateur

Alors ce code n'est pas dur a comprendre : j'ai mélangé le code de progression avec le code existant, en ajoutant des repères grâce au label : le "Chargement ..." et le "Prêt".

Comme d'habitude, essayez de modifier ce code pour le rendre plus efficace et comme vous le souhaitez.

Bon ... Cette barre n'était pas trop compliquée :p ? Eh bien ce n'est pas fini !

Le menu contextuel

Alors, le menu contextuel est, comme je vous l'ai expliqué, le menu visible lors du clic droit.

Comment ils font ceux sous mac avec un seul bouton à la souris ?

Je sais pas moi, il faudrait leur demander :p .

Bon assez plaisanté.

Nous allons créer un contextmenu, toujours dans la suite de notre programme qui va déplacer le Label qui nous sert à afficher le texte.

Donc, toujours dans le menu de la boite à outils : "Menus et barres d'outils", vous prenez le ContextMenuStrip et vous l'intégrez à la feuille.

Une fois ce contrôle intégré, créez un élément avec comme texte : "Déplacer Le Label Ici".

Une fois cela fait, comme à l'accoutumée on crée son évènement correspondant.

Dans cet évènement, nous allons récupérer la position du curseur et changer la propriété location du label :

Code : VB.NET
1
Me.LBL_TEXTE.Location = Control.MousePosition

Control.MousePosition étant la propriété position de la souris (control), eh oui même la souris a des propriétés, vous en rêviez n'est-ce pas ?

Et donc voilà, une fois tout le code bien agencé :
Code : VB.NET
 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
Public Class Form1

    Private Sub ResetToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ResetToolStripMenuItem.Click
        'Efface le label
        PauseFactice()
        Me.LBL_TEXTE.Text = ""

    End Sub

    Private Sub QuitterToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles QuitterToolStripMenuItem.Click
        'Fermeture avec confimation
        If MsgBox("Souhaitez-vous vraiment quitter ce magnifique programme ?", 36, "Quitter") = MsgBoxResult.Yes Then
            End
        End If
    End Sub

    Private Sub CB_MENU_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CB_MENU.SelectedIndexChanged
        'Ecrit le texte de la combobox lros du changement d'index
        PauseFactice()
        Me.LBL_TEXTE.Text = Me.CB_MENU.SelectedItem

    End Sub

    Private Sub EcrireToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EcrireToolStripMenuItem.Click
        'Ecrit le texte de la textbox lors de l'appui sur "ecrire"
        PauseFactice()
        Me.LBL_TEXTE.Text = Me.TXT_MENU.Text

    End Sub

    Private Sub PauseFactice()
        LBL_STATUT.Text = "Chargement ..."
        PGB_STATUT.Value = 0
        TIM_STATUT.Enabled = True
    End Sub

    Private Sub TIM_STATUT_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TIM_STATUT.Tick
        'Si la progressbar est arrivée au bout, on désactive le timer
        If Me.PGB_STATUT.Value = 100 Then
            Me.TIM_STATUT.Enabled = False
            LBL_STATUT.Text = "Prêt"
        Else
            'Augmente de 1 la progressbar
            Me.PGB_STATUT.Value = Me.PGB_STATUT.Value + 1
        End If
    End Sub

    Private Sub DéplacerLeLabelIciToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DéplacerLeLabelIciToolStripMenuItem.Click
        'lors d'un clic droit et du choix de déplacement du label, on place le label aux positions de la souris.
        Me.LBL_TEXTE.Location = Control.MousePosition
    End Sub
End Class


Lors d'un clic et de la sélection, le label bouge (Waaaw :p ).

Bon, ce programme était là pour vous montrer les utilisations des différents menus, il est bien évidemment inutile (donc indispensable) !

Eh bien quelques connaissances en plus, une pierre en plus à l'édifice comme on dit !

Q.C.M.

Quelle propriété modifier pour savoir où notre menu se placera ?
Quelle est l'utilité du menu contextuel ?

Statistiques de réponses au QCM

Chapitre précédent Sommaire Chapitre suivant

Partager

17 commentaires pour "Les menus"
Note moyenne : 3.60 / 4 (543 votes)
Pseudo Commentaire
Hors ligne Hindioumax # Posté le 31/03/2011 à 12:24:25
Zéro pointé !
Avatar

Je rejoins un peu les commentaires précédents, la fin du chapitre est vraiment moins bien expliquée qu'au début. J'ai un peu galéré à partir du contextMenu... Déjà, je n'avais pas compris que c'était un composant et puis surtout la liaison du menu contextuel avec le form principal n'est pas indiquée (propriété du form : ContextMenuStrip).
De plus, même lorsqu'on a trouvé le moyen d'établir la liaison entre les deux, le déplacement du label n'est pas à l'endroit exact de la souris. Bref, pas mal de petites choses déroutantes au bon suivi du cours.

Quelques petites remarques :
  • globalement, je pense qu'il manque quelques photos d'écrans de rendu, notamment à partir du contextMenuStrip
  • l'ajout de contrôles de la statusbar est beaucoup plus pratique avec l’icône déroulant de la statusbar (et puis ça explique son fonctionnement)
  • l'ajout d’éléments dans la combobox devrait être un poil plus détaillé (ajout par le code par exemple au chargement du formulaire "Form1_load")
  • J'aurais bien vu une section avec un ajout de barre d’icône ^^

Cela dit c'est bien la 1ère fois que je vois quelques fausses notes depuis le début du cours.
Merci au rédacteur de ce cours VB. NET, je me régale depuis le début !! :p

La curioZité est un vilain défaut de passionné !
Image utilisateur
 
Hors ligne Trimard # Posté le 16/11/2011 à 10:40:31
Chipper arrête de chiper
Avatar

Ville : Bron
Pays : France métropolitaine
Études : IUT A Lyon 1

Bonjour,

Tout d'abord, je tiens à remercier le site du zéro pour son tutoriel, ainsi que Annasto pour son complément d'information qui m'a permis de faire fonctionner le Menu Contextuel.

Il est vrai que jusqu'à présent, les tutos étaient bien plus détaillé et nous guidaient énormément, mais ça fait déjà une série de chapitre que ça l'est moins. Cependant, je ne pense pas à du bâclage, mais plus à nous rendre de plus en plus autonome et à aller chercher les informations de nous-mêmes auprès de la communauté. On va quand même pas nous mâcher tout le boulot ^^.

Cela dit, je rejoints Hindioumax, j'aurais apprécié pouvoir apprendre à faire des barres d'icônes ou des docks type mac =x. Tant pis je chercherai par mes propres moyens une fois fini tous les cours de VB ici présent :D.

Cordialement

Un trimard

On va pas s'énerver après on va être énervé d'être énervé alors soit heureux comme un 51 dans l'eau parce qu'après ornithorynque tu mets des points de suspension avec arobase et tu conclues avec un ?!? Ou tu fumes un pétard avec Servietsky parce que même si un 8 a l'envers reste un 8, de côté il cache un nombre infini de possibilité !!! Looser's Te@M Représente :D
 
Hors ligne Kramfors # Posté le 19/02/2012 à 17:02:27

Concernant la barre de statut, pour que le texte ne s'affiche que lorsque la ProgressBar est complètement chargée, je cache le LBL_TEXTE dans la méthode PauseFactice() et je ne le remontre que quand elle est complètement chargée (à la fin du timer).
Explications :

Code : VB.NET
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
Private Sub PauseFactice(ByVal myString As String)
    Me.LBL_STATUT.Text = "Chargement..."
    ' On cache le LBL_TEXTE à l'aide de la fonction Hide()
    Me.LBL_TEXTE.Hide()
    Me.PGB_STATUT.Value = 0
    Me.TIM_STATUT.Enabled = True

Private Sub TIM_STATUT_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TIM_STATUT.Tick
    If Me.PGB_STATUT.Value = 100 Then
        Me.TIM_STATUT.Enabled = False
        Me.LBL_STATUT.Text = "Prêt"
        ' On affiche le LBL_TEXTE à l'aide de la fonction Show()
        Me.LBL_TEXTE.Show()
    Else
        Me.PGB_STATUT.Value += 1
    End If
End Sub
Hors ligne jeym21 # Posté le 21/05/2012 à 23:07:47

Avis : Très bon

J'ai fais mes premiers pas dans la programmation il y a 2 jours, et je suis déjà vraiment content de ce que j'arrive à faire.
J'ai vraiment passé mes 2 journées sur votre tutoriel et donc je me sens obligé de laisser ce petit commentaire afin de vous remercier.
Votre méthode d'apprentissage est très efficace.
Respectueusement,
Jeym.
Connecté Biloubil # Posté hier à 22:14:21
Miaou
Avatar

Avis : Bon

hello tout le monde
Là je suis perplexe, impossible d'avoir le menu contextuel.
Les explications sont trop succinctes :
"Une fois ce contrôle intégré, créez un élément avec comme texte : "Déplacer Le Label Ici"...."
Quel élément ? de quel type ?
j'ai tout essayé, j'ai écris "Déplacer Le Label Ici" dans le ContextMenuStrip1, mais il apparait nulle part..!!
Quant à " DéplacerLeLabelIciToolStripMenuItem.Click..." Quézako ??
Moi j'ai plutôt un " ContextMenuStrip1.Opening ..." !!

Avant d'envoyer le post, je viens encore d'essayer deux trois truc, mais rien y fait
j'ai même des message du genre :
"La clause Handles requiert une variable WithEvents définie dans le type conteneur ou l'un de ses types de base."

je passe......

.
.
C'est en forgeant que l'on devient forgeron,...
mais ce n'est pas en sciant que Léonard devint scie.
 

Voir tous les commentaires