lundi 22 octobre 2012

Comment utiliser une Listbox dans VB.NET

Comment utiliser une Listbox dans VB.NET


Ajouter le Listbox dans un formulaire. Décider de sa superficie en traçant un rectangle. Normalement, la Listbox s’appellera ListBox1.


ListBox dans Visual Basic

Ensuite, dans le code, on ajuste les propriétés. Je choisis de le faire au démarrage du formulaire. Vous pouvez aussi faire la même chose. J’ai utilisé la commande With pour faire différent (ça modifie que la présentation).



Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        With ListBox1
            .Enabled = True 'if the listox is enable or disabled
            .Sorted = True ' if you want ti list sorted
            .BorderStyle = BorderStyle.Fixed3D ' the border style
            .Visible = True
            .ScrollAlwaysVisible = True 'presence of scroll all time
            .MultiColumn = False 'add a new column if number of items reach max height
        End With

        ListBox1.Items.Add("allo1")
        ListBox1.Items.Add("allo2")
        ListBox1.Items.Add("allo3")
        ListBox1.Items.Add("allo4")
        ListBox1.Items.Add("allo5")
        ListBox1.Items.Add("allo1")
        ListBox1.Items.Add("allo2")
        ListBox1.Items.Add("allo3")
        ListBox1.Items.Add("allo4")
        ListBox1.Items.Add("allo5")
        ListBox1.Items.Add("allo1")
        ListBox1.Items.Add("allo2")
        ListBox1.Items.Add("allo3")
        ListBox1.Items.Add("allo4")
        ListBox1.Items.Add("allo5")

    End Sub

La ListBox est trié alphabétiquement. Les mots « allo1 » seront regroupés ensemble en premier, les « allo2 » suivront ensuite. Ça va fonctionner si tu ajouter des chaînes de caractères String.

Si vous lancer le code maintenant, vous allez remarquer la ListBox1 renseignée avec aucune sélection initiale. Cette présentation de la ListBox convient dans la majorité des cas.

Exemple de ListBox dans Visual Basic

Autrement, si vous voulez que la ListBox1 ait une sélection de départ, vous pouvez utiliser les propriétés SelectedIndex ou SelectedItem.

Soyez averti, les index peuvent changer à chaque fois que vous ajouter ou retirer un élément de la ListBox. C’est aussi de même si vous décider de trier une Listbox qui n’est pas triée. Alors, vous ne pouvez pas vous fier à la propriété SelectedIndex pour obtenir le résultat d’une sélection.



        ListBox1.SelectedIndex = 2 '0 is the first one, 2 is the third.





Vous pouvez utiliser SelectedItem pour obtenir la chaîne de caractères String listé dans la ListBox. Encore une fois, la chaîne de caractère String n’est pas nécessairement unique. Il faut être prudent pour que ne pas que votre programme réagisse incorrectement suivant le choix de son utilisateur. Remarquer aussi qu’en cas de doublons de String, le programme sélection toujours le premier rencontré dans la liste.




        ListBox1.SelectedItem = "allo3" 'will always select the first he encounter





On peut aussi agrémenter la sélection des items dans la ListBox1 en utilisation la propriété SelectionMode.


        ListBox1.SelectionMode = SelectionMode.MultiSimple 'no need to use shift or ctrl, only space or left-click
        ListBox1.SelectionMode = SelectionMode.MultiExtended  'no need to use shift or ctrl with left-click


Lorsque SelectionMode est égale à SelectionMode.MultiSimple, alors l’utilisateur n’aura qu’à utiliser la bouton de la souris pour sélectionner ou désélectionner des items de la ListBox1.

Lorsque SelectionMode est égale à SelectionMode.MultiExtended, l’utilisateur doit utiliser les touches CTRL ou MAJ (SHIFT) pour sélectionner ou désélectionner les items de la ListBox1.

C’est assez simple avec l’aide de Visual Basic Express 2010 ou avec Visual Studio 2010. Ouvrez votre  form1.vb [Design]. Double-cliquer la ListBox1. Vous devriez obtenir quelque chose le code suivant :



    Private Sub ListBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListBox1.SelectedIndexChanged



    End Sub



Maintenant, mettez un MsgBox à l’intérieur de la fonction et faite afficher par exemple SelectedIndex.


    Private Sub ListBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListBox1.SelectedIndexChanged

        MsgBox(ListBox1.SelectedIndex)

    End Sub


Alors, lorsque vous changer la sélection dans la ListBox1, un message apparaît à l’écran et indique le numéro d’index de votre sélection.

Votre code devrait avoir l’air de ceci :



Public Class Form1
   
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        With ListBox1
            .Enabled = True 'if the listox is enable or disabled
            .Sorted = True ' if you want ti list sorted
            .BorderStyle = BorderStyle.Fixed3D ' the border style
            .Visible = True
            .ScrollAlwaysVisible = True 'presence of scroll all time
            .MultiColumn = False 'add a new column if number of items reach max height
        End With

        ListBox1.Items.Add("allo1")
        ListBox1.Items.Add("allo2")
        ListBox1.Items.Add("allo3")
        ListBox1.Items.Add("allo4")
        ListBox1.Items.Add("allo5")
        ListBox1.Items.Add("allo1")
        ListBox1.Items.Add("allo2")
        ListBox1.Items.Add("allo3")
        ListBox1.Items.Add("allo4")
        ListBox1.Items.Add("allo5")
        ListBox1.Items.Add("allo1")
        ListBox1.Items.Add("allo2")
        ListBox1.Items.Add("allo3")
        ListBox1.Items.Add("allo4")
        ListBox1.Items.Add("allo5")


        ListBox1.SelectedIndex = 2 '0 is the first one, 2 is the third.
        ListBox1.SelectedItem = "allo3" 'will always select the first he encounter

        ListBox1.SelectionMode = SelectionMode.MultiSimple 'no need to use shift or ctrl, only space or left-click
        ListBox1.SelectionMode = SelectionMode.MultiExtended  'no need to use shift or ctrl with left-click

    End Sub
    Private Sub ListBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListBox1.SelectedIndexChanged

        MsgBox(ListBox1.SelectedIndex)



    End Sub


End Class




Il existe une petite faiblesse dans le code. Lorsque vous démarrez le programme tel qu’il est le MsgBox est lancé avant que le formulaire soit complètement chargé. Ce n’est pas très sexy. Nous pouvons rendre le code un peu plus intelligent en plaçant une condition dans la fonction d’événement.


dimanche 21 octobre 2012

Comment utiliser une combobox

Comment utiliser une combobox


Ajouter le combobox dans un formulaire et redimensionner-le.

ComboxBox dans Visual Basic
Ensuite, dans le code, on ajuste les propriétés. Je choisis de le faire au démarrage du formulaire. Vous pouvez aussi faire la même chose.



    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        ComboBox1.BackColor = Color.Ivory
        ComboBox1.Enabled = True
        ComboBox1.Visible = True
        ComboBox1.FlatStyle = FlatStyle.Standard

    End Sub


Lorsque le combobox est initialisé lorsque les propriétés de départ sont satisfaisantes, nous pouvons ajouter des mots dans le combobox. Restons dans la même fonction de démarrage et ajoutons du texte après avoir ajusté ses propriétés.



    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        ComboBox1.BackColor = Color.Ivory
        ComboBox1.Enabled = True
        ComboBox1.Visible = True
        ComboBox1.FlatStyle = FlatStyle.Standard


        ComboBox1.Items.Add("John")
        ComboBox1.Items.Add("Peter")
        ComboBox1.Items.Add("Kevin")


    End Sub



Maintenant que vous avez mis des renseignements dans le combobox, il est bon qu’au démarrage du formulaire, un choix de texte soit déjà pré-sélectionné.





    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        ComboBox1.BackColor = Color.Ivory
        ComboBox1.Enabled = True
        ComboBox1.Visible = True
        ComboBox1.FlatStyle = FlatStyle.Standard


        ComboBox1.Items.Add("John")
        ComboBox1.Items.Add("Peter")
        ComboBox1.Items.Add("Kevin")

        ComboBox1.SelectedIndex = 2 'will display Peter
    End Sub


Vous pouvez aussi agrémenter l’utilisation du combobox en le triant alphabétiquement avec la commande shorted.





    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        ComboBox1.BackColor = Color.Ivory
        ComboBox1.Enabled = True
        ComboBox1.Visible = True
        ComboBox1.FlatStyle = FlatStyle.Standard


        ComboBox1.Items.Add("John")
        ComboBox1.Items.Add("Peter")
        ComboBox1.Items.Add("Kevin")

        ComboBox1.SelectedIndex = 2 'will display Peter

        ComboBox1.Sorted = True

    End Sub



Notez qu’après avoir trié la liste dans la combobox, l’index SelectedIndex est reinitialisé.


        ComboBox1.Sorted = True
        ComboBox1.SelectedIndex = 1 'will display Kevin




Pour accéder au texte sélectionné dans le combobox, on utilise la propriété Text.


        MsgBox(ComboBox1. Text)


Si vous êtes tenté de faire quelques manipulations avec les items dans la combobox, ayez en tête que c’est une collection bien ordinaire. Cette collection possède les éléments les plus normaux qu’on retrouve dans toutes les collections d’objets.

Pour ajouter :
Combobox1.items.add = “Obama”

Pour obtenir le nombre d’items:
Combobox1.items.count

Pour retirer in item selon son index:
Combobox1.items.Remove(2) ‘ pour retirer par exemple le 2e élément de la collection




Référence :

vendredi 19 octobre 2012

Comment utiliser ses objets


Comment utiliser ses objets

Utiliser ses classes de la façon la plus simple


Les objets ou les classes sont simplement légèrement plus compliqué que les éléments tel que les String, Integer, Long, etc. Elle nécessite la présence de la fonction New pour exister. Dans cet article, je présente la classe dans sa forme la plus élémentaire soit utiliser la classe comme une structure. La structure est un terme utilisé dans un langage de programmation plus ancien qui est le C ou le C++ (Aussi appelé Cpp). Une structure est en fin de compte un regroupement de plusieurs éléments élémentaires.
En Visual Basic, le terme structure n’existe pas parce que le Visual Basic est de la programmation par objets. Une structure n’est pas un objet, c’est un élément au concept abandonné. Néanmoins, utiliser une classe comme une structure reste vraiment très très très très utile. Avant de discuter et de débattre sur des notions, voici le code informatique pour l’article, c’est-à-dire de l’utilisation de classe dans sa forme la plus simple.

L’allure du formulaire de form1.vb

Le fichier Form1.vb
''' <summary>
''' improve your coding
''' </summary>
''' <remarks></remarks>
Public Class Form1

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgsHandles MyBase.Load

    End Sub
    ''' <summary>
    ''' start button
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgsHandles Button1.Click

        Dim oClass1 As Class1 'Initiate variable
        Try
            'If oClass1 Is Nothing Then MsgBox("oClass1 is nothing")
            oClass1 = New Class1 'create object

            oClass1.File = "filename" ' fill the String named File
            oClass1.Extension = ".txt" ' fill the String named Extension
            oClass1.Path = "c:\" ' fill the String named Path

            'display informations from oClass1 to form and textbox
            TextBox1.Text = "this is my oClass1"
            TextBox2.Text = oClass1.File
            TextBox3.Text = oClass1.Extension
            TextBox4.Text = oClass1.Path

        Catch ex As Exception
            'add basic error message here
            MsgBox(ex.StackTrace, MsgBoxStyle.Exclamation, ex.Message)
        End Try

       
    End Sub
End Class



Le fichier Class1.vb
Public Class Class1
    Public File As String
    Public Path As String
    Public Extension As String

End Class




Ensuite dans le Try, on crée l’objet :

            oClass1 = New Class1 'create object


Lorsque la classe qu’on a nommé oClass1 est crée, on renseigne des chaînes de caractères qui le composent : « File », « Extension » et « Path »

            oClass1.File = "filename"
            oClass1.Extension = ".txt"
            oClass1.Path = "c:\"


Remarquez que l’assignation de fait simplement par le signe mathématique égale (=).
Donc, il faut y lire que « filename » va dans oClass1.File et c’est pareil pour les 2 autres. Autrement dit, ces informations sont enregistrées dans l’object oClass1.
Finalement, à la partir de l’objet, on fait afficher les informations dans les TextBox :

            TextBox1.Text = "this is my oClass1"
            TextBox2.Text = oClass1.File
            TextBox3.Text = oClass1.Extension
            TextBox4.Text = oClass1.Path


Remarquer une chose intéressante, lorsque vous écrivez les lignes de code, à chaque fois que vous taper point après avoir écrit la nom d’une variable, une fenêtre s’affiche et fait apparaître les différents choix. Dans ces choix, vous retrouvez vos 3 chaînes de caractère String. Choisissez-les à l’aide de la souris ou du clavier et éviter de les sélections en les écrivant. Économiser du temps. Profiter de l’intelligence du code et de Visual Basic Express ou de Visual Studio.

L’un des avantages de travailler avec des objets (ou des classes) est de pouvoir regrouper des éléments d’informations dans un même paquet. Et Alors manipuler un paquet d’informations est plus simple que de manipuler les informations un à un.

À propos

Je vous invite à visiter mon blogue pour d’autres articles et à laisser un commentaire.
Check Technologies représente plus de 10 ans …. Dans les technologies de l’information et la conception assistée par ordinateur.





La chose la plus importante dans le new

La chose la plus importante dans le new

La fonction new – un gros concept


Une erreur que les programmeurs font est la notion d’objet et de pointeur. Quoi ? Soyer sans crainte, cet article n’est pas un cours d’informatique ni de philosophie.
Disons que pour mettre en contexte que vous avez un fichier relativement gros dans votre ordinateur. Ce fichier est enregistré dans vos documents ou un dossier sur le disque dur, votre carte mémoire USB, un disque DVD, enfin, vous comprenez.
Plus vous avez des fichiers, plus ça prend de l’espace et c’est le même principe avec les objets crées dans les codes informatiques.
D’accord, je suis certains que vous comprenez.

Maintenant, imaginer que dans votre ordinateur, vous avez des raccourcis vers des fichiers, des signets, des favoris, enfin des choses qui vous permettent de mieux regrouper vos fichiers dans un endroit. Imaginer que sur votre bureau (desktop) vous avez un raccourci qui mène à un fichier de musique, un dossier de travail, vous devez comprendre que le raccourci n’est pas le fichier. Est-ce que vous comprenez ?

En informatique et en programmation, c’est pareil. Lorsqu’on programme, on doit garder en esprit que lorsqu’on programme, il faut savoir ce qu’on désire créer.  D’accord, c’est difficile pour moi d’expliquer d’avantage, passons par un exemple de code et voyons le résultat.
Le fichier form1.vb
''' <summary>
''' improve your coding
''' </summary>
''' <remarks></remarks>
Public Class Form1

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

    End Sub
    ''' <summary>
    ''' start button
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

        Dim oClass1 As Class1 'Initiate variable
        Dim oCollection As Collection 'Initiate variable
        Try
            oClass1 = New Class1 'create object but outside the loop
            oCollection = New Collection 'create a collection
            For index1 = 1 To 5 Step 1 'simple loop from
                'If oClass1 Is Nothing Then MsgBox("oClass1 is nothing")


                oClass1.File = index1.ToString  ' fill the String named File (a value)
                oClass1.Extension = ".txt" ' fill the String named Extension
                oClass1.Path = "c:\" ' fill the String named Path

                oCollection.Add(oClass1) 'add the object (???) in a collection of objects




            Next index1

            'display informations from oClass1 to form and textbox
            TextBox1.Text = oCollection.Item(1).File 'display the file  from the 1st item in collection
            TextBox2.Text = oCollection.Item(2).File 'display the file  from the 2nd item in collection
            TextBox3.Text = oCollection.Item(3).File 'display the file  from the 3rd item in collection
            TextBox4.Text = oCollection.Item(4).File 'display the file  from the 4th item in collection
            'please notice that all item in oCollection are the same.
            'The 4 items in the collection are looking at the same and single object.

        Catch ex As Exception
            'add basic error message here
            MsgBox(ex.StackTrace, MsgBoxStyle.Exclamation, ex.Message)
        End Try

       
    End Sub
End Class




Le fichier class1.vb
Public Class Class1
    Public File As String
    Public Path As String
    Public Extension As String

End Class



Vous devez comprendre ce qui se passe dans le code, ou du moins avoir une idée du fonctionnement.

Un objet oClass1 est crée grâce à la fonction new. Vous me suivez ?
Ensuite, le code rentre dans une boucle où il ajoute dans une collection  d’objet Class1 suivant des valeurs différentes. Vous voyez ?
Lorsque vient le temps de faire afficher le code, vous allez vous rendre compte que les résultats sont tous identiques et ce malgré le fait que le code fait afficher 4 éléments différents de la collection d’objets. Est-ce que vous voyez ? Sinon, exécuter le code et observer.
Explications :
L’objet oClass1 est en fait créé qu’une seule fois. Lorsque le code entre dans la boucle, elle assigne au même objet une valeur à File dans oClass1. La fonction add dans la collection ne fait que créer un raccourci qui pointe vers le seul et unique objet créé qui est oClass1
On se retrouve donc avec 4 items dans la collection qui sont qu’en fait 4 raccourcis pointeur qui pointent exactement au même endroit dans l’ordinateur.
Alors que faire si on désire créer 4 objets distincts ? C’est très simple. Mettre la ligne avec la fonction new à l’intérieur de la boucle for.
Le programme exécutera à répétition la création d’objet pour ensuite se faire renseigner par les différentes assignations de texte, de nombre, etc.
Nous aurions une collection avec 4 raccourcis. Chacun de ces raccourcis vont pointer vers 4 objets distincts.
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

        Dim oClass1 As Class1 'Initiate variable
        Dim oCollection As Collection 'Initiate variable
        Try
            'oClass1 = New Class1 'create object but outside the loop
            oCollection = New Collection 'create a collection
            For index1 = 1 To 5 Step 1 'simple loop from
                'If oClass1 Is Nothing Then MsgBox("oClass1 is nothing")

                oClass1 = New Class1 'create object but inside the loop
                oClass1.File = index1.ToString  ' fill the String named File (a value)
                oClass1.Extension = ".txt" ' fill the String named Extension
                oClass1.Path = "c:\" ' fill the String named Path

                oCollection.Add(oClass1) 'add the object (???) in a collection of objects




            Next index1

            'display informations from oClass1 to form and textbox
            TextBox1.Text = oCollection.Item(1).File 'display the file  from the 1st item in collection
            TextBox2.Text = oCollection.Item(2).File 'display the file  from the 2nd item in collection
            TextBox3.Text = oCollection.Item(3).File 'display the file  from the 3rd item in collection
            TextBox4.Text = oCollection.Item(4).File 'display the file  from the 4th item in collection
            'please notice that all item in oCollection are the same.
            'The 4 items in the collection are looking at the same and single object.

        Catch ex As Exception
            'add basic error message here
            MsgBox(ex.StackTrace, MsgBoxStyle.Exclamation, ex.Message)
        End Try

       
    End Sub


Je dois faire une remarque. Le premier code cité dans cet article n’est pas quelque chose à éviter. Pourquoi ? Parce qu’elle met en évidence sur l’utilisation des pointeurs (raccourcis) par-dessus la manipulation des objets. Dans tous les cas que je peux imaginer, manipuler les raccourcis est 1000 fois plus performant que l’objet. Un objet, c’est un produit fini avec une dimension. Le pointeur, c’est léger et donne l’information à l’ordinateur où regarder pour trouver l’objet.
Dans un langage de programmation plus ancien, à lire le C/C++, les pointeurs très facile à identifier grâce à la présence d’un astérisque (*). Aujourd’hui le concept est simplifié.

À propos

Je vous invite à visiter mon blogue pour d’autres articles et à laisser un commentaire.
Check Technologies représente plus de 10 ans …. Dans les technologies de l’information et la conception assistée par ordinateur.