Cours VB.NETDate de mise à jour : 05/12/2010
VIII-L. Main Menu, ContextMenu
VIII-L-1. MainMenu en Vb 2003
VIII-L-2. Menu Contextuel Vb 2003
VIII-L-3. MenuStrip de Vb 2005
VIII-L-4. ContextMenuStrip de Vb 2005
VIII-M. Avoir le Focus
VIII-M-1. Comment donner le focus à une fenêtre ?
VIII-M-2. Comment donner le focus à un contrôle ?
VIII-M-3. Prise ou perte du focus
VIII-M-4. La touche TAB pour passer d'un contrôle à l'autre
VIII-M-5. Raccourcis clavier
VIII-N. Barre de boutons, barre de status
VIII-N-1. La barre de boutons: ToolBar en VB 2003 (ne plus utiliser)
VIII-N-2. Contrôle StatusBar en VB 2003 (ne plus utiliser)
VIII-N-3. ToolStrip en VB 2005
VIII-N-4. StatuStrip en VB 2005
VIII-O. Les images
VIII-O-1. Le contrôle 'PictureBox'
VIII-O-2. La propriété 'Image' des contrôles
VIII-O-3. Le contrôle ImageList
VIII-L. Main Menu, ContextMenu
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 :
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).
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 :
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.
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.
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:
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
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.
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.
Avec la méthode Select:
On peut la surcharger et en plus sélectionner une portion du texte:
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:
If TxtNom. CanFocus then
TxtNom. Focus ()
End If
|
L'évènement GotFocus se produit quand le contrôle prend le focus.
Private Sub TxtNom_GotFocus. .
End Sub
|
ActiveControl est une propriété de la fenêtre qui indique le controle qui a le focus:
Private Sub Button5_Click (ByVal sender As System. Object , ByVal e As System. EventArgs ) Handles Button5. Click
MsgBox (ActiveControl. Name )
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é:
Private Sub TextBox1_Validating ((ByVal sender As Object, ByVal e As System. ComponentModel . CancelEventArgs )
_Handles TextBox1. Validating
If TextBox1. Text = " " then
e. Cancel = True
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 :
- Enter
- GotFocus
- Leave
- Validating
- Validated
- 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 :
- Enter
- GotFocus
- LostFocus
- Leave
- Validating
- 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.
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.
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.
Exemple quand l'utilisateur tape Alt-N, le focus va dans le TextBox dessous.
VIII-N. Barre de boutons, barre de status
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...
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:
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:
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.
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:
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.
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:
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:
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:
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.
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:
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.
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é.
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!!)
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:
. 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.
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
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.
On peut charger une image en mode conception par la fenêtre 'propriétés' et la propriété 'Image':
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:
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?
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?
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.
PictureBox1. Image . RotateFlip (RotateFlipType. Rotate90FlipX )
|
La méthode Save sauvegarde l'image dans un fichier.
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)
Imports System. IO
Dim MyStream As FileStream = New FileStream (" C:\vimage.gif”, FileMode.Open)
pictureBox1. Image = Image. FromStream (MyStream)
MyStream. Close
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:
button1. Image = Image. FromFile (" C:\Graphics\MyBitmap.bmp " )
button1. ImageAlign = ContentAlignment. MiddleRight
|
Exemple pour un label:
Dim Label1 As New Label ()
Dim Image1 As Image
Image1 = Image. FromFile (" c:\\MyImage.bmp " )
Label1. Size = Image1. Size
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.
Si je clique sur le bouton '...' en face de Images, l'éditeur de collections d'image s'ouvre.
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.
btOk. ImageList = imagelist1
btOk. ImageIndex = 2
|
Un ImageList peut aussi être chargé par code:
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.
imageList1. Images . Add (Image. FromFile (imageToLoad), CouleurTransparente)
|
La taille des images peut aussi être modifiée par code:
imageList1. ImageSize = New Size (255, 255)
imageList1. TransparentColor = Color. White
|
Les sources présentés sur cette page sont libres de droits,
et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. 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'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
Cette page est déposée à la SACD.
|