Aller au menu - Aller au contenu

Icône Les propriétés

Avatar
Mise à jour : 13/12/2010
Difficulté : Facile Facile Creative Commons BY-NC-SA
23 410 visites depuis 7 jours, dont 605 sur ce chapitre classé 14/786
Eh bien, déjà pas mal de nouveaux concepts à appréhender, mais ce n'est pas finit ! Vous ne voulez quand même pas en rester là ? Eh bien modifions les propriétés de nos contrôles !
Sommaire du chapitre :
Icône du chapitre
Chapitre précédent Sommaire Chapitre suivant

A quoi ça sert ?

Alors vous vous demandez sûrement à quoi servent les propriétés, même si vous avez déjà vu la fenêtre les contenant.
Image utilisateur

La chose magnifique est que nous sommes sous Visual Basic Express, un module du grand IDE qu'est Visual Studio, cet IDE est, pour moi, le meilleur actuellement.

Votre IDE va vous permettre de : vous dire les erreurs en français la plupart du temps, la possibilité de les résoudre sans se poser de questions, la description de toutes les propriétés des objets, la description de toutes les fonctions, un système de debugg magique et j'en passe. Bref, Visual Basic Express va vous mâcher énormément le travail.

Tout ça pour vous dire : côté propriétés nous allons être grandement aidés, intuitif comme tout, un vrai plaisir.

Donc revenons à nos moutons : qu'est ce qu'une propriété sur un objet VB, attention ici je parle des objets graphique que nous voyons (boutons, labels, textbox ...).

Eh bien ces propriétés sont toutes la partie design et fonctionnelle de l'objet : vous voulez cacher l'objet, agissez sur la propriété "Visible" ; vous voulez le désactiver, la propriété "Enable" est là pour ça ; l'agrandir, lui faire afficher autre chose, le changer de couleur, le déplacer, le tagger ..., agissez sur ses propriétés.

Les propriétés nous seront accessibles côté feuille design, mais aussi côté feuille de code VB, on agit d'un côté ou de l'autre. Très utile lorsque vous voulez le faire apparaître, disparaître dynamiquement, l'activer le désactiver, etc.

Si vous voulez le placer, lui attribuer un nom, et le définir comme vous voulez : agissez côté design, ensuite si vous voulez le déplacer pendant l'exécution, les propriétés seront modifiées coté VB.

Ok, ok on te crois au fait comment ouvrir le code, je ne vois que le design ...


Oh, excusez-moi, pour ouvrir le code, allons dans notre fenêtre solutions, vous devez voir
  • une icône "myproject", elle correspond aux propriétés du projet entier, que je vous ai expliqué
  • Le second est "form1.vb", c'est ce fichier qui nous intéresse.

Cliquez droit sur form1.vb vous avez :
  • concepteur de vues pour le côté design
  • et ... Afficher le code ! Voilà comment afficher le code.

Les utiliser

Alors vous savez désormais à quoi ça sert, mais comment se servir de ces magnifiques choses ?
Image utilisateur

Image utilisateur


Eh bien côté visuel, pas trop de mal : sortez la fenêtre propriétés.

Si vous ne savez plus comment on fait, au bout de la barre d'outils Image utilisateur cette icône sinon regardez sur votre droite ->

Bon, votre fenêtre est sortie, voici ce qu'il y a dans la partie supérieure
Image utilisateur


Le mot en gras est le nom de votre contrôle (que j'appelle également objet), ce nom est défini dans la propriété (name), à noter que les propriété entre parenthèses ne peuvent plus être accédées côté VB.

Cette propriété est FONDAMENTALE, comme elle correspond au nom de l'objet (ou son ID), c'est ce nom qui sera utilisé Côté VB pour y accéder et le modifier. Utilisez un nom explicite !

Je vous explique ma manière de procéder : Mes contrôles sont toujours en MAJUSCULE.
Ils contiennent un préfixe en fonction de leur type :
  • BT pour les boutons
  • LBL pour les labels
  • TXT pour les txtbox
  • LNK pour les labels link
  • RB pour les radio boutons
  • CHK pour les chkbox
  • et j'en passe ...

Je ne vous oblige absolument pas mais je vous conseille quand même, après ce préfixe je place un underscore "_" puis la fonction rapide de l'objet. exemple pour ici : BT_ENVOI est le bouton pour envoyer.

Bon après notre nom, nous avons le type d'objet que c'est ici, c'est un "button".

Faites attention à ces données en haut quand vous cliquez sur un contrôle, normalement Visual Basic Express doit vous afficher tout de suite ses propriétés mais j'ai déjà eu des cas où la propriété de l'ancien objet était resté et je modifiait le mauvais ... (anecdote :) )
Image utilisateur

Dans le reste de cette fenêtre, vous voyez la liste des propriétés de l'objet. Cliquez sur la case correspondante pour lui assigner une propriété. Dans le cas de mon bouton, vous le voyez à droite, j'ai modifié sa propriété "font", qui veut dire en anglais police, j'ai changé sa "size" autrement dit taille, et j'ai modifié également sa propriété "Text", pour lui changer son nom.


Pour qu'on travaille tous pareil, on va tous créer cette petite fenêtre :
Image utilisateur

Donc j'ai un bouton appelé ... BT_ENVOI, et une TextBox, que vous trouvez également sur le côté pour placer vos objets appelée TXT_RECOIT.

Et c'est parti pour l'aventure

Les assigner et les récupérer côté VB

Nous allons donc modifier leurs propriétés côté VB.

Vous vous souvenez du Sub Main() quand nous étions en console ?

Ici, c'est à peut près pareil sauf que ça s'appelle des événements (j'expliquerai plus tard pas de panique), et notre événement utilisé ici s'appelle form_load, c'est, comme son nom l'indique l'événement pénétré lorsque la fenêtre se lance (plus exactement durant son chargement).

Donc pour le créer il y a 2 manières : l'écrire mais comme vous ne savez pas les syntaxes des événements on ne va pas vous prendre la tête pour le moment, ou le générer automatiquement grâce à notre IDE.

Comment ?

Peut-être l'avez vous déjà fait par erreur : double cliquez sur n'importe quel point de la fenêtre que vous créer (pas un contrôle surtout !).

Vous atterrissez coté code VB

Code : VB.NET
1
2
3
4
5
6
7
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub

End Class

Avec ce magnifique code. Alors pour le moment comprenez juste que ce sub sera pénétré au chargement de la fenêtre, j'expliquerai plus tard comment ça fonctionne. Donc on va écrire dedans.

Alors, comment attribuer les propriétés ? Eh bien c'est très simple : il faut tout d'abord dire sur quelle fenêtre on travaille, ici (et dans la majorité des cas) c'est la fenêtre actuelle appelée "Me" en VB (un peu comme le "this" en javascript ou en C++).

Donc nous avons "Me", il faut le lier au reste donc utilisons le "." (nous allons donc accéder aux objets et contrôles de cette fenêtre), ici une liste s'affiche à nous, c'est tout ce que l'on peut utiliser avec l'objet me (autrement dit la fenêtre), spécifions autre chose : nous voulons accéder à notre textbox, donc on tape son nom : "TXT_RECOIT". A peine la partie "TXT" écrite, notre formidable IDE nous dit déjà le reste :

Image utilisateur


Un petit "TAB" nous permet de compléter automatiquement le mot (réflexe que vous prendrez par la suite pour coder de plus en plus rapidement), continuons notre avancement, je veux changer le texte présent dans la textbox, donc accédons à la propriété "text", pareil que pour avant, il nous affiche déjà le reste.

Nous voilà donc sur la propriété text, nous avons 2 choix : attribuer sa valeur ou l'utiliser ; pour l'utiliser le signe "=" se place avant, pour l'assigner, après.

Assigner est utile pour entrer des valeurs, utiliser sa valeur est pratique pour des cas comme les textbox, récupérer ce que l'utilisateur a entré.

Nous allons donc l'assigner, et attribuons lui une valeur texte exemple de la ligne :
Code : VB.NET
1
Me.TXT_RECOIT.Text = "Salut"

Voilà, lançons le programme pour essayer : un salut s'est affiché dans la textBox !

Image utilisateur


Nous avons réussi notre premier accès à une propriété coté VB.

Pourquoi s'arrêter là, alignons ce texte !
Tapons donc "Me.TXT_RECOIT.Tex", et là, l'auto complétion me propose ... textalign !

Pourquoi s'en priver ! J'écris donc ma propriété textalign, un = pour lui assigner une propriété et là, notre magnifique IDE fait encore tout le travail !

Image utilisateur

Faites votre choix ! Centré, à gauche ou à droite ?
Je choisis centré chef ! :lol: On double clique donc sur ce choix !

Et au nouveau test de notre application ...

Image utilisateur>

C'est magique, c'est le VB, c'est tout !

With

Voici un petit mot qui va changer votre vie :

With (autrement dit : avec en français).

Oui, bon, il va changer votre vie, mais comment ?

Eh bien il va vous arriver de vouloir assigner beaucoup de propriétés à un contrôle ou alors tout simplement définir toutes les composantes d'envoi de mail, de connection réseau, d'impression ...

Bon, restons dans le cas basique : j'ai un Bouton pour lequel je veux changer la couleur, le texte, la position, la taille ...

Avec ce que je vous ai expliqués vous allez écrire, en toute logique cela :
Code : VB.NET
1
2
3
4
5
6
Me.MonboutonPrefere.ForeColor = Color.Red
Me.MonboutonPrefere.Text = "Mon nouveau texte"
Me.MonboutonPrefere.Left = 10
Me.MonboutonPrefere.Top = 10
Me.MonboutonPrefere.Height = 50
Me.MonboutonPrefere.Width = 50


En passant, les information Top et Left, positionne le coin supérieur gauche de votre contrôle à la manière des inputbox et Height et Width respectivement la hauteur et la largeur de votre contrôle.


Bon, avec ce code, votre bouton aurait bien évidemment changé de position, de couleur, de texte, etc...

Mais un peu lourd comme notation ?

Eh bien le mot With va rendre tout ça plus lisible (enfin, plus lisible, ça dépend des goûts et habitudes de chacun.

Donc le code ci-dessus avec notre petit With (et son End With respectif) donnerait :

Code : VB.NET
1
2
3
4
5
6
7
8
With Me.MonboutonPrefere
            .ForeColor = Color.Red
            .Text = "Mon nouveau texte"
            .Left = 10
            .Top = 10
            .Height = 50
            .Width = 50
        End With

Eh oui, le with a fait disparaître tous les Me.MonBoutonPrefere devant chaque propriété.
Il faut garder le "." avant la propriété.


Vous pouvez bien sûr assigner des propriétés autre qu'au bouton durant le with. Un MonLabel.Text = "Test" aurait été bien sûr accepté.
Mais je ne vous le conseille tout de même pas, le with n'aurait plus son intérêt.

Eh bien, j'espère que ce mot vous aidera ! Bonne chance pour la suite.

Q.C.M.

Quel est l'équivalent du Main() désormais ?
Soit le code :

Code : VB.NET
1
Me.TXT_RECOIT = "Salut"


Est-il correct ?

Statistiques de réponses au QCM

Chapitre précédent Sommaire Chapitre suivant

Partager

5 commentaires pour "Les propriétés"
Note moyenne : 3.60 / 4 (543 votes)
Pseudo Commentaire
Hors ligne Android # Posté le 29/03/2010 à 23:10:26
Qui a dit Android ?
Avatar
Groupe : Bannis

Merci pour le tutoriel !

Image utilisateur
Image utilisateur
 
Hors ligne Sh4dows # Posté le 20/08/2010 à 21:34:43
Avatar

Avis : Très bon

Ville : Bordeaux
Pays : France métropolitaine
Études : Epitech Bordeaux

Sa Commence à devenir intéressant le coté Graphique ! ^^
Vive le "With" !!!! =>
Hors ligne GautierLaisné # Posté le 01/12/2010 à 19:07:51
Vous êtes iciiii ! - RdA -
Avatar

Salut tous le monde ! Alors voilà, j'ai installé Visual Basic Express comme c'est décrit dans la première partie, sur console, tous fonctionne bien.
Mon problème, le voici :

--> j'ouvre un nouveau projet
--> Application Windows Forms
--> Je met un "button" et un "TextBox"
--> Je regarde dans les propriété et déjà, la première erreur :
Au lieu d'avoir ceci : Image utilisateur, il y a marqué à la place de Citation : Site du Zér0
BT_ENVOI System.Windows.Forms.Button

Citation : Chez moi
Button1 System.Windows.Forms.Button

Bon ca se ressemble un peu déja !
Pour l'instanct, j'ai ceci : Image utilisateur

Ensuite on parle d'assigner une propriété sur la fenêtre windows :
-->Citation : Site du Zér0
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
End Class


Citation : Site du Zér0 - suite propriété
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.TXT_RECOIT.Text = "Salut"
End Sub
End Class

Ca c'est l'ENORME PROBLEME !
Je ne peux pas aller plus loin. Pourquoi ?
Déja, j'écris ceci, et je ne vois rien qui apparait quand j'écrit "Me.TX" (normalement la suite apparait en dessous du texte) Rien n'apparait, et donc je le copie moi-même mais un point d'exclamation apparait, je clique dessus et me dit :

Citation : Erreur
'TXT_RECOIT' n'est pas un membre de 'WindowsApplication1.Form1'

Il me propose :
Citation : Erreur
Générer le stub de propriété pour 'TXT_RECOIT' dans 'WindowsApplication1.Form1'
et
Générer un champ pour 'TXT_RECOIT' dans 'WindowsApplication1.Form1'


Je ne sais pas si c'est parce qu'il y a une mauvaise installation ou pas, mais je ne peux pas aller plus loin car des que je débogue ;
Citation : Fenêtre Windows
Visual Studio ne peut pas lancer le débogage, car la cible 'C:\Documents and Settings\*****(mon nom)\Local Settings\Apllication Data\Tempory Projects\WindowsApplication1\bin\Debug\WindowsApplication1.exe est manquante. Générez le projet et reesayez, ou définissez les propriété OutputPath et AssemblyName en conséquence pour qu'elles pointent vers l'emplacement correct de l'assembly cible.


Aidez-moi svp !
Contactez-moi sur mp svp !
Je ne peux pas aller plus loin!

Niarf ^^
Vive le C !
 
Hors ligne polmiki # Posté le 17/01/2011 à 19:17:22

@GautierLaisné

C'est Normal t'as pas modifié le nom de tes contrôles (objets)!
BT_ENVOI, TXT_RECOIT, sont les noms que tu dois donné à tes controles Button et TxtBox dans les propriétés, champ NOM ! Aprés avoir fait ça tout devrait fonctionner !!
Hors ligne heaf # Posté le 06/09/2011 à 10:40:19
Avatar

Études : Licence Professionnelle SIL (Système Informatiques et Logiciel)

Bonjour moi j'ai un autre soucis.

Je travaille sous Microsoft Visual Basic et je n'arrive pas à centrer le texte de la TXT_Recois.

Je n'ai que la proposition text, mais pas textalign.

J'ai donc voulu essayer avec alignment (choix que me propose l'ide) ce qui me donne donc

Code : VB.NET
1
Me.TXT_Recois.aligment = ???


Rien ne fonctionne et je ne trouve rien sur le net...

Si quelqu'un aurait l'amabilité de m'aider :)

Merci

Edit : Bon j'ai enfin trouvé ^^ Il a fallu que je poste pour trouver la solution ^^

Je vais donc quand meme la partager :

Code : VB.NET
1
Me.TXT_Recois.aligment = 2


Alignment = 0 correspond à gauche
alignment = 1 correspond à droite
alignment = 2 correspond au centre

:)

Cordialement, Heaf
 

Voir tous les commentaires