Cours VB.NET

Image non disponible


précédentsommairesuivant

VIII-L. Main Menu, ContextMenu

Image non disponible

Comment créer un menu principal en haut d'un formulaire ou un ContextMenu?

Avec MainMenu et ContextMenu en VB 2003; on ne les utilise plus.

Avec MenuTrip et ContextMenuStrip à partir de VB 2005, c'est ceux qu'i faut utiliser .

VIII-L-1. MainMenu en Vb 2003

On peut ajouter un menu dans une fenêtre.

Beaucoup d'applications contiennent un menu.

Exemple de menu :

Image non disponible

On remarque que le contenu des menus est standardisé afin que l'utilisateur s'y retrouve sans aide (L'utilisateur lit, à mon avis, rarement les aides !!)

Comment créer un menu ?

En allant dans la boite à outils, chercher un main menu et en le déposant sur la fenêtre : il apparaît en dessous de la fenêtre.

Pour 'dessiner' le menu, il suffit de mettre le curseur sur le menu en haut de la fenêtre, ou est écrit 'Taper ici' : tapez le texte du menu, ('Fichier' par exemple).

Image non disponible

Il apparaît automatiquement un 'Tapez Ici' pour les lignes dessous ou le menu suivant.

Les lignes du menu sont nommées automatiquement MenuItem1, MenuItem2..

Quand le curseur est sur une ligne du menu,la fenêtre de propriété donne les propriétés de la ligne :

La propriété ShortKey permet de créer un raccourci.

La propriété Checked permet de cochez la ligne

La propriété Visible permet de faire apparaître ou non une ligne.

Si vous double-cliquez sur la ligne du menu vous voyez apparaître :

 
Sélectionnez

Private Sub MenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 
_Handles MenuItem1.Click

End Sub     

C'est la procédure événement liée à la ligne du menu.

Quand l'utilisateur clique sur une ligne du menu c'est le code contenu dans cette procédure qui est effectué.

VIII-L-2. Menu Contextuel Vb 2003

C'est un menu qui s'ouvre quand, le curseur de l'utilisateur est sur un objet, et qu'on clique sur le bouton droit de la souris.

En allant dans la boite à outils, chercher un Context menu, on le dépose sur la fenêtre : il apparaît en dessous de la fenêtre.

Si on le sélectionne avec la souris, il apparaît en haut et comme pour le menu principal, on peut ajouter des lignes.

Il faut ensuite affecter ce Context Menu à un contrôle; pour cela donner à la propriété ContextMenu du contrôle le nom du ContextMenu.

 
Sélectionnez

TextBox1.ContextMenu= ContextMenu1

Si vous double-cliquez sur une ligne du menu vous voyez apparaître les procédures évènement correspondantes.

VIII-L-3. MenuStrip de Vb 2005

Remplace le MainMenu en VB 2005.

Image non disponible

En allant dans la boite à outils, chercher un MenuStrip et en le déposant sur la fenêtre : il apparaît en dessous de la fenêtre et la barre apparaît en haut du formulaire.

On peut ajouter des menus, combobox et zone texte.

Pour remplir rapidement les menus, c'est comme en vb2003.

On peut mettre des images dans les menus.

Dans les propriétés Items permet d'avoir accès aux menus ou lignes et à toutes les propriétés des éléments (image..).

Chaque élément de la barre a sa procédure évènement: Pour le premier bouton par exemple:

 
Sélectionnez

Private Sub MenuStrip1_ItemClick(ByVal sender As System.Object, ByVal e As System.EventArgs) 
_Handles ToolStripButton1.Click

End Sub

VIII-L-4. ContextMenuStrip de Vb 2005

Remplace le ContextMenu de Vb2003.

VIII-M. Avoir le Focus

Image non disponible

Nous allons étudier comment un objet de l'interface devient 'actif'.

Lorsqu'une fenêtre ou un contrôle est actif on dit qu'il a le focus.

Un contrôle qui a le focus est celui qui reçoit les évènements clavier, souris..

Si une fenêtre prend le focus, sa barre de titre en haut prend la couleur active; si c'est un contrôle texte, le curseur (le trait vertical) apparaît, si c'est un bouton, il a un petit changement d'aspect qui indique que le focus est dessus.

VIII-M-1. Comment donner le focus à une fenêtre ?

Si une fenêtre est visible la méthode Activate lui donne le focus.

 
Sélectionnez

Form1.Activate()

Dans ce cas l'évènement Form1_Activated est effectué.

La méthode Desactivate est déclenché quand la fenêtre perd le focus.

VIII-M-2. Comment donner le focus à un contrôle ?

Avec la méthode Focus.

 
Sélectionnez

TxtNom.Focus()

Avec la méthode Select:

 
Sélectionnez

TxtNom.Select()     'donne le focus à la zone de texte Txnom et met le curseur dedans.

On peut la surcharger et en plus sélectionner une portion du texte:

 
Sélectionnez

TxtNom.Select(2,3)    'donne le focus et sélectionne 3 caractères à partir du second.  

ou forcer à ne rien sélectionner (second argument à 0).

On peut interdire a un contrôle le focus en donnant la valeur False à sa propriété CanFocus.

Aussi avant de donner le focus il est préférable de vérifier s'il peut le prendre:

 
Sélectionnez

If TxtNom.CanFocus then

    TxtNom.Focus()

End If

L'évènement GotFocus se produit quand le contrôle prend le focus.

 
Sélectionnez

Private Sub TxtNom_GotFocus..

End Sub

ActiveControl est une propriété de la fenêtre qui indique le controle qui a le focus:

 
Sélectionnez

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
      
        MsgBox(ActiveControl.Name) 'Affiche Button5

End Sub

VIII-M-3. Prise ou perte du focus

Lorsqu'un contrôle prend le focus, il se déclenche dans l'ordre:

Enter

Se produit quand l'utilisateur entre dans le contrôle.

GotFocus

Se produit quand le contrôle prend le focus.

Leave

Se produit quand le focus quitte le contrôle.

Validating

Se produit lorsque le contrôle est en cours de validation.

Il y a peut-être quelquechose à verifier avant de quitter le contrôle. On va quitter le contrôle, ce n'est pas encore fait. Il faut vérifier avant. La validation c'est vous qui devez la faire!!! en écrivant du code.

Pour un bouton, par exemple, se produit lorsque l'on quitte le bouton, cela permet de contrôler la validité de certaines données et si nécessaire d'interdire de quitter le contrôle si certaines conditions ne sont pas remplies:

Exemple: ne pas quitter une textbox si l'utilisateur n'a rien tapé:

 
Sélectionnez

Private Sub TextBox1_Validating ((ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) 
_Handles TextBox1.Validating

If   TextBox1.Text=""  then

    e.Cancel = True    'Annuler la perte du focus: le focus reste sur TextBox11

End If

End Sub

Validated

Se produit lorsque le contrôle à terminé sa validation.

LostFocus

L'évènement LostFocus se produit quand le contrôle perd le focus, mais attention:

Lorsque vous changez le focus à l'aide du clavier (TAB, MAJ+TAB, etc.), en appelant les méthodes Select ou SelectNextControl, ou en définissant la propriété ContainerControl.ActiveControl au formulaire actuel, les événements Focus se produisent dans l'ordre suivant :

  1. Enter
  2. GotFocus
  3. Leave
  4. Validating
  5. Validated
  6. LostFocus

Lorsque vous changez le focus avec la souris ou par l'appel à la méthode Focus, des événements Focus se produisent dans l'ordre suivant :

  1. Enter
  2. GotFocus
  3. LostFocus
  4. Leave
  5. Validating
  6. Validated

Dans Validating, si la propriété Cancel du CancelEventArgs prend la valeur true , tous les événements qui se produiraient normalement après l'événement Validating sont supprimés.

Si la propriété CauseValidating du contrôle a la valeur false, les événements Validating et Validated sont supprimés.

Les événements Enter et Leave sont supprimés dans les formulaire (fenêtres) Les événements équivalents dans la classe Form sont les événements Activated et Desactivate.

Certains contrôles ne peuvent pas avoir le focus, comme les labels par exemple.

VIII-M-4. La touche TAB pour passer d'un contrôle à l'autre

Dans une application où un utilisateur tape beaucoup de données dans de multiples contrôles, il passe souvent d'un contrôle (TextBox par exemple) au suivant avec la touche TAB.

Image non disponible

Comment permettre cela? Chaque contrôle à une propriété TabIndex qui s'incrémente automatiquement de 0 à 1, 2, 3...quand en cours de conception on ajoute des contrôles sur une fenêtre.

Lorsque l'utilisateur appuie sur TAB, le focus passe au contrôle qui a le TabIndex immédiatement supérieur.

On peut modifier le TabIndex des contrôles pour modifier l'ordre de tabulation.

Quand TabStop a la propriété False (au niveau d'un contrôle) celui ci est exclu de l'ordre de tabulation et le focus ne s'arrête pas dessus.

En VB 2005 on peut très rapidement modifier l'ordre de tabulation:

Passer par le menu Affichage-> Ordre de tabulation.

En mode design apparaît sur chaque contrôle un carré avec le numéro du TabIndex; il suffit de cliquer successivement sur chaque carré dans l'ordre des tabulations croissantes pour mettre les tabulations dans le bon ordre.

Il faut pour finir repasser par le menu Affichage-> Ordre de tabulation.

Image non disponible

VIII-M-5. Raccourcis clavier

Dans beaucoup d'applications certains contrôles ont un raccourci clavier:

Exemple: Nouveau est une ligne de menu. N étant souligné, ALT-N déclenche la ligne de menu, donne le focus au contrôle.

Comment faire cela: Dans la propriété Text du contrôle, quand on tape le texte en mode conception, il faut mettre un '&' avant la lettre qui servira de raccourci clavier.

'&Nouveau' dans notre exemple affichera bien Nouveau et ALT N fonctionnera.

Pour une TextBox, la propriété text ne peut pas être utilisée, aussi il faut mettre devant la textBox un contrôle label (qui lui ne peut pas avoir le focus), si les TabIndex du label et du TextBox se suivent, le fait de faire le raccourci clavier du label donne le focus au TextBox.

Image non disponible

Exemple quand l'utilisateur tape Alt-N, le focus va dans le TextBox dessous.

VIII-N. Barre de boutons, barre de status

Image non disponible

Comment mettre une barre de bouton en haut et une barre d'état en bas?

VIII-N-1. La barre de boutons: ToolBar en VB 2003 (ne plus utiliser)

Voici un exemple classique, sous le menu il y a une barre de bouton: Nouveau, Ouvrir, Enregistrer, Chercher, Imprimer...

Image non disponible

Allez chercher dans la boite à outils un contrôle ToolBar, il se place en haut, sous le menu. Mettre aussi un ImageList.(Un contrôle ImageList est un contrôle qui stocke des images, chaque image étant chargée en mode conception et repérée par un numéro (0,1,2,3..)

Dans la ToolBar mettre dans la propriété ImageList le nom du contrôle ImageList qui contient les images des boutons.

Ouvrir la collection Buttons dans la fenêtre des propriétés de la ToolBar pour pouvoir ajouter ou modifier les boutons:

Image non disponible

Vous pouvez ajouter ou enlever des boutons.

Chaque bouton a ses propriétés affichées à droite:

Name: Nom du Bouton Exemple NewButton.

ImageIndex: donne le numéro de l'image (contenue dans l'Imagelist) qui doit s'afficher dans le bouton.

ToolTipText: donne le texte du ToolTip (Carré d'aide qui apparaît quand on est sur le bouton) Il faut aussi que la propriété ShowToolTip de la ToolBar soit à True

L'évènement déclenché par le click de l'utilisateur sur un bouton est: ToolBar1_ButtonClick

L'argument e contient les arguments de l'évènement click de la ToolBar. e.Button contient le nom du bouton qui a déclenché l'évènement. Pour chaque nom de bouton on appellera la procédure correspondante: NewDoc(), Open()...

Comme d'habitude il suffit de double-cliquer sur la ToolBar pour faire apparaître ToolBar1_ButtonClick

Voici le code complet:

 
Sélectionnez

Private Sub ToolBar1_ButtonClick(ByVal Sender As System.Object, 
_ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) 
_Handles toolBar1.ButtonClick

If e.Button Is NewButton Then

        NewDoc()

ElseIf e.Button Is OpenButton Then

        Open()

ElseIf e.Button Is SaveButton Then

        Save()

ElseIf e.Button Is PreviewButton Then

        PrintPreview()

...

End If

End Sub

Le ToolBar a donc une collection de Buttons, de plus il n'y a qu'une procédure évènement 'Click' unique propre à la ToolBar et pour tous les boutons.

VIII-N-2. Contrôle StatusBar en VB 2003 (ne plus utiliser)

La barre d'état se trouve en bas de la fenêtre et affiche des informations relatives aux opérations en cours.

Image non disponible

Ajouter un StatusBar au formulaire. Dans la fenêtre des propriétés du StatusBar, la collection Panels contient les zones d'affichage du StatusBar.

Dans le code, pour modifier le texte d'une zone faire:

 
Sélectionnez

StatusBar1.Panels(0).Text="1715.2F"

On remarque (c'est du Net) que le premier panel est panels(0).

VIII-N-3. ToolStrip en VB 2005

On peut créer une barre n'importe ou dans le formulaire.

Exemple de barre de menu comprenant:

Un bouton.

Un label

Un bouton déroulant un menu.

Un comboBox

Une zone texte

Une barre de progression.

Image non disponible

Images possible dans les menus; il peut y avoir des séparateurs.

Pour créer la barre ToolStrip, allez la chercher dans la boite à outils.

A la droite de la barre, en mode design, se trouve un menu déroulant qui permet de choisir l'élément à ajouter à la barre:

Image non disponible

Cela ajoute des ToolStripLabel, ToolStripButton.... (noter que ce sont des objets spécifiques aux ToolStrip). Chaque élément ajouté est un objet

Ensuite, en cliquant sur chaque élément de la barre, on peut changer ses propriétés (qui apparaissent en bas à droite)

Ici le premier élément à gauche est un label; j'en ai modifié la propriétés (text='Groupe') et j'ai mis une image (il a accepté une icône) dans la propriété 'Image'. Le second élément est un bouton avec une image de stop.

Dans le code, on a accès aux propriétés de l'élément directement à partir de son nom:

 
Sélectionnez

    ToolStripButton1.Text="Ok"

Ou par l'intermédiaire de la barre ToolStrip qui a une collection d'items contenant tous les objets de la barre:

 
Sélectionnez

    ToolStrip1.Items.Item (2).Text

A la place de l'index de l'élément dans la barre (ici 2), on peut mettre le nom d'élément.

Evènement déclenché par un click:

1- Comme d'habitude, en double-cliquant sur un élément(le second par exemple qui correspond à un bouton), on se retrouve dans la procédure exécutée quand l'utilisateur clique sur le bouton.

 
Sélectionnez

Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click

End Sub

Attention: chaque élément à sa propre procédure évènement.

Ainsi s'il y a un second bouton, il y aura une autre procédure Click:

 
Sélectionnez

Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 
_Handles ToolStripButton2.Click

End Sub

2- On a aussi une procédure unique pour le click sur la barre.

 
Sélectionnez

Private Sub ToolStrip1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ToolStrip1.Click

End Sub

Mais le sender est le ToolStrip; pour savoir dans la routine quel bouton a été cliqué, il faut modifier la sub en indiquant comme Handles le nom de tous les boutons de la barre, ainsi par exemple, on peut savoir quel bouton à été cliqué.

 
Sélectionnez

Private Sub ToolStrip1_Click(ByVal sender As Object, ByVal e As System.EventArgs) 
_Handles ToolStripButton1.Click, 
_ToolStripButton2.Click, ToolStripButton3.Click

Dim Button As System.Windows.Forms.ToolStripItem = CType(sender, System.Windows.Forms.ToolStripItem)

  MsgBox(Button.Name) '

End Sub

La barre de bouton peut être mise horizontalement( grâce à la propriété LayoutStyle ).

Avec l'aide du petit bouton permettant les taches courantes sur le ToolStrip, on peut comme ici, incorporer instantanément tous les boutons standards ( nouveau, ouvrir, enregistrer, imprimer, couper, copier, coller. magique!!)

Avec l'aide du petit bouton permettant les taches courantes sur le ToolStrip, on peut aussi mettre le ToolStrip dans un conteneur (ToolStripContaineur), en mode design , on voit apparaître dessous des outils permettant de modifier le conteneur; si on clique sur un des coté (dessous) on a accès aux propriétés du bord. (mais la mise en oeuvre n'est pas facile!!)

Image non disponible

Il n'y a plus de 'groupe de bouton' avec un seul bouton enfoncé, ou du moins j'ai pas trouvé.(On ne peut pas tout avoir!!) par contre, on peut 'enfoncer' ou non un bouton:

 
Sélectionnez

.ToolStripButton2.Checked = True

On n'a pas accès à cette propriété(et d'autres) en utilisant les Items du ToolSTrip.

Comment créer un bouton à bascule:

Lorsqu'un utilisateur clique sur un bouton bascule, ce bouton apparaît enfoncé et conserve cet aspect jusqu'à ce que l'utilisateur clique une nouvelle fois sur le bouton.

 
Sélectionnez

toolStripButton.CheckOnClick = True
toolStripButton.CheckedChanged AddressOf EventHandler(toolStripButton_CheckedChanged)

Merci Microsoft (Non testé)

Le ToolStrip contient des objets (button, label...) qui ont chacun leur procédure évènement.

VIII-N-4. StatuStrip en VB 2005

Pour créer une barre d'état en bas d'un formulaire; remplace les StatusBar.

Peut contenir des ToolStripStatusLabel (Texte ou icone), des ToolStripProgressBar, ToolStripDropDownButton et ToolsStripSplitButton (combinaison d'un bouton standard et d'un bouton déroulant). Il n'y a plus de Panel.

VIII-O. Les images

Image non disponible

Comment afficher des images ?

VIII-O-1. Le contrôle 'PictureBox'

Le contrôle PictureBox sert à afficher des graphismes au format bitmap, GIF, JPEG, métafichier ou icône (Extension .BMP .GIF .JPG .WMF .ICO)

L'image à affichée est déterminée par la propriété Image, laquelle peut être définie au moment de l'exécution ou du design. La propriété SizeMode détermine la façon dont l'image et le contrôle se dimensionnent l'un par rapport à l'autre.

Image non disponible

On peut charger une image en mode conception par la fenêtre 'propriétés' et la propriété 'Image':

Image non disponible

Là, on peut charger une fichier image ou une image qui est dans les ressources du programme

On peut aussi charger une image par code:

 
Sélectionnez

PictureBox1.Image = Image.FromFile("vimage.gif")

La Classe Image (Shared) possède une fonction qui retourne une image à partir d'un fichier. On l'affecte ensuite à la propriété Image du PictureBox1.
( Il est aussi possible d'utiliser FromStream).

Ho! merveille, les GIF animés sont acceptés et s'animent sous VB.

Comment effacer une image?

 
Sélectionnez

If Not (PictureBox1.Image Is Nothing) Then
    PictureBox1.Image.Dispose()
    PictureBox1.Image = Nothing
End If

Comment copier une image d'un PictureBox dans un autre PictureBox?

 
Sélectionnez

PictureBox1.Image = PictureBox2.Image

La Classe PictureBox.Image a comme d'habitude des propriétés et des méthodes:
Clone (pour copier)
RawFormat (format du fichier)
Height et Width (hauteur et largeur de l'image en pixels)
VerticalResolution et HorizontalResolution (en pixels/pouce)
PhysicalDimension (retourne largeur et hauteur)
IsCanonicalPixelFormat et IsExtendedPixelFormat retournent True si il y a respectivement 32 et 64 bits par pixels.
PixelFormat (format du pixel)
....

La méthode RotateFlip permet par exemple d'effectuer une rotation de l'image; quand on tape le code, VB donne automatiquement la liste des paramètres.

 
Sélectionnez

PictureBox1.Image.RotateFlip(RotateFlipType.Rotate90FlipX)

La méthode Save sauvegarde l'image dans un fichier.

 
Sélectionnez

PictureBox1.Image.Save("c:\image.bmp")

Bien noter que le nom de l'extension suffit à imposer le format de l'image sur le disque.

On peut charger une image .GIF puis la sauvegarder en .BMP

PictureBox1.ErrorImage donne le nom de l'image à afficher si le chargement d'une image echoue.
PictureBox1.InitialImage donne le nom de l'image à afficher pendant le chargement de l'image à afficher.

Il est possible de définir une couleur comme 'transparente': voir la page sur les boutons.

Comment charger une image à partir d'un fichier, mais sans 'bloquer' ce fichier.

On a vu qu'on peut 'charger' une image par PictureBox1.Image = Image.FromFile("vimage.gif")

L'inconvénient de cette méthode est que tant que le programme est ouvert, le fichier correspondant sur le disque est utilisé et par conséquence il est impossible de travailler dessus. (Impossible d'effacer le fichier par exemple!!)

Une méthode pour libérer le fichier est d'utiliser un Stream (Merci la Faq de Developpez.com)

 
Sélectionnez

'En haut du module

Imports System.IO

' Créer le FileStream sur le fichier vimage.gif

Dim MyStream As FileStream = New FileStream("C:\vimage.gif”, FileMode.Open)

 ' affecter l'image à pictureBox1 

pictureBox1.Image = Image.FromStream(MyStream) 

' libérer les ressources 

MyStream.Close 

' supprimer le fichier vimage.gif

 File.Delete("C:\vimage.gif”)

Comment placer l'image dans le PictureBox?

La propriété SizeMode impose comment l'image sera placée dans le contrôle PictureBox:

aucun : L'image est alignée en haut à gauche du contrôle. Elle peut être trop grande ou trop petite, mais rien ne change de taille.

Stretch : l'image est automatiquement étirée afin que sa taille s'adapte à celle du contrôle qui la contient.

Autosize : la taille du contrôle est modifiée pour faire la taille de l'image.

CenterImage : l'image est centrée par rapport au contrôle.

VIII-O-2. La propriété 'Image' des contrôles

De nombreux contrôles Windows Forms peuvent afficher des images. L'image affichée peut être une icône symbolisant la fonction du contrôle ou une image d'arrière plan; par exemple, l'image d'une disquette sur un bouton indique généralement une commande d'enregistrement. L'icône peut également être une image d'arrière-plan conférant au contrôle une certaine apparence.

Pour tous les contrôles affichant des images:
  • l'image peut être définie à l'aide des propriétés Image ou BackgroundImage directement en mode Design par la fenêtre des propriétés. Il faut sélectionner Image puis cliquez sur "..." et choisir un fichier contenant une image. Dans ce cas, une fois chargée, l'image fait partie intégrante du programme. (Il n'est pas utile de fournir le fichier .BMP ou .GIF avec l'application)
  • Lorsque le programme 'tourne' on peut aussi charger une Image. Le code affecte à la propriété Image ou BackgroundImage un objet de type System.Drawing.Image, en général, vous utiliserez la méthode FromFile de la classe Image pour charger une Image à partir d'un fichier.(Dans ce cas le fichier contenant l'image doit être fourni).

Exemple pour un bouton:

 
Sélectionnez

button1.Image = Image.FromFile("C:\Graphics\MyBitmap.bmp")
' Aligne l'image.
button1.ImageAlign = ContentAlignment.MiddleRight
 

Exemple pour un label:

 
Sélectionnez

Dim Label1 As New Label()
Dim Image1 As Image

Image1 = Image.FromFile("c:\\MyImage.bmp")

' modifier la taille du label pour qu'il affiche l'image.

Label1.Size = Image1.Size 

' Mettre l'image dans le label.

Label1.Image = Image1

Si on renseigne la propriété Image, on ne peut pas utiliser en même temps la propriété ImageList décrite ci-dessous.

Ces Images et BackGroundImage ont toutes les propriétés et méthodes des images vues dans les images des PictureBox.

VIII-O-3. Le contrôle ImageList

Il sert de containeur à images, c'est une collection d'images. les images qu'il contient seront utilisées par d'autres contrôles (PictureBox, Listview, TreeView, Button....)

Il n'est pas visible en exécution.

En conception il apparaît en bas sous la fenêtre. A droite figurent ses propriétés, en particulier, la collection Images qui contient les images et la propriété TransparentColor qui indique la couleur qui doit être transparent, c'est à dire non visible.

Il faut l'ajouter au formulaire, il apparaît en dessous.

Image non disponible

Si je clique sur le bouton '...' en face de Images, l'éditeur de collections d'image s'ouvre.

Image non disponible

On peut ajouter des images avec le bouton 'Ajouter'.

L'ImageList est ainsi chargé.

Ensuite pour utiliser une image de l'ImageList dans un autre contrôle, il faut modifier les propriétés de cet autre contrôle( un bouton par exemple):

La propriété ImageList du bouton doit contenir le nom du contrôle imageList et ImageIndex du bouton doit contenir l'index de l'image dans l'ImageList.

 
Sélectionnez

btOk.ImageList = imagelist1

btOk.ImageIndex = 2

Un ImageList peut aussi être chargé par code:

 
Sélectionnez

imageList1.Images.Add(Image.FromFile(NomImage))

On ajoute à la collection Images une image venant d'un fichier nommé NomImage.

On peut surcharger la méthode Add en fournissant en plus la couleur transparente.

 
Sélectionnez

imageList1.Images.Add(Image.FromFile(imageToLoad), CouleurTransparente)
 

La taille des images peut aussi être modifiée par code:

 
Sélectionnez

imageList1.ImageSize = New Size(255, 255)
imageList1.TransparentColor = Color.White
 

précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © . Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.