DÉVELOPPEMENT RAPIDE D'APPLICATIONS




Notes de cours 6

Autres controls



Les boutons de sélection

RadioButton:
Par définition un bouton d'option fait partie d'un groupe; on crée d'abord un cadre (GroupBox) et on y met les boutons d'options. Le GroupBox détermine que les boutons font tous partie du groupe. Si j'ai besoin de 2 groupes de boutons, je doit créer 2 GroupBox différents.

On décrit chaque bouton avec Text et on lui donne un Name significatif.

Il peut y avoir seulement un bouton sélectionné dans chaque groupe.

À l'exécution on doit tester la propriété Checked de chaque bouton - si elle retourne True, le bouton est celui qui a été sélectionné (seulement un bouton du groupe retourne True) et j'exécute l'action appropriée.


CheckBox:
celui-ci aussi fait partie d'un groupe. La différence avec le bouton d'option c'est qu'il peut y avoir plusieurs items qui ont un check.

On se sert de la propriété Checked pour tester si chaque boîte est vide (Checked = False) ou cochée (Checked = True).











Utilisation d'arrays


Création du tableau - "array"

En VB on déclare un tableau comme une variable ordinaire, avec DIM.

Par exemple:
Dim Mois(1 to 12) As String
déclare un tableau Mois qui contiendra 12 valeurs avec index de 1 à 12. Mois(1) = "Janvier", etc.

Le tableau:
Dim Departement(6 ) As String
déclare un tableau de 7 éléments avec le premier index = 0.

On peut aussi déclarer un tableau de grandeur indéterminée (unbound) en utilisant la fonction Array( ) dans le code:
Dim Semaine, Jour
Semaine = Array("lundi", "mardi", "mercredi")
Jour = Semaine(1)       'retourne mardi


Le Control Array

Un tableau de contrôles et non un tableau qui contrôle

Ceci était très commun en VB6. Ça n'existe plus en VB.NET.

On peut créer l'équivalent mais on ne peut pas le faire lors de la création du form - il faut le faire dans le code.

Dans l'exemple qui suit, j'ai besoin de 6 TextBox pour les cours et 6 TextBox pour les notes.

Je veux traiter les TextBox comme un array. Dans le FormLoad je vais créer 2 tableaux de TextBox et je vais les afficher à l'endroit voulu avec Location.













 
Option Explicit On   

Public Class Form2  Inherits System.Windows.Forms.Form 
   
 Dim sglNotes(5) As Single     
Dim strCours(5) As String     
Dim sglTotal, sglMoyenne As Single     
Dim txtNotes(5) As TextBox    
 Dim txtCours(5) As TextBox  

#Region " Windows Form Designer generated code "       

Private Sub frmMoyenne_Load(ByVal sender As System.Object,  _
           ByVal e As System.EventArgs) Handles MyBase.Load          		
Me.WindowState = FormWindowState.Normal 
         For x As Integer = 0 To 5   
          txtCours(x) = New TextBox 
            txtCours(x).Location = New Point(100, (x * 25) + 100) 
            Me.Controls.Add(txtCours(x)) 
        Next         

 For x As Integer = 0 To 5
             txtNotes(x) = New TextBox  
           txtNotes(x).Location = New Point(300, (x * 25) + 100) 
            Me.Controls.Add(txtNotes(x))
         Next         

 EffaceTout()     
 End Sub   

   Private Sub btnCalc_Click(ByVal sender As System.Object, _
               ByVal e As System.EventArgs) Handles btnCalc.Click
         Dim i As Integer      
    For i = 0 To 5    
         sglNotes(i) = txtNotes(i).Text  
           strCours(i) = txtCours(i).Text   
      Next i    
   
   For i = 0 To 5  
           sglTotal = sglTotal + sglNotes(i) 

        Next i   

       sglMoyenne = sglTotal / 6  
        lblMoy.Text = sglMoyenne 
    End Sub   
 
  Private Sub EffaceTout()    
     Dim i As Integer 
         For i = 0 To 5    
         sglNotes(i) = 0   
          strCours(i) = "" 
            txtNotes(i).Text = 0 
            txtCours(i).Text = ""  
       Next i     

     sglTotal = 0
         sglMoyenne = 0 
         lblMoy.Text = ""   
   End Sub
  End Class  







Haut de la page

Accueil          Tutoriels