Si vous n’avez pas lu la première partie, voici le lien!
Dans ce tutoriel, nous irons plus en détails à propos des Windows Forms. Plus précisément, nous apprendrons comment aller chercher des données d’un utilisateur et les stocker en mémoire par la suite. Les contrôles utilisés seront les suivants :
- TextBox
- RichTextBox
- ComboBox
- Button
Vous remarquerez que plus vous utiliserez les contrôles de Windows Forms et plus vous arriverez à identifier des similitudes entre ces derniers. Faites simplement saisir et glisser (drag and drop) le contrôle de votre choix sur le formulaire principal de votre projet pour tenter de le faire ressembler à l’exemple ci-dessous.
Modifiez les contrôles que vous avez ajoutés de la façon suivante :
1. Renommer les contrôles du formulaire avec des noms significatifs, par exemple btnAddUser pour le bouton d’ajout.
2. Changer la propriété DropDownStyle du ComboBox pour DropDownList.
3. Ajouter Homme et Femme au ComboBox (regardez pour la propriété Items).
La prochaine étape sera de prendre les données de l’utilisateur au moment où celui-ci cliquera sur le bouton et de les mettre en mémoire. Nous aurons donc besoin d’un objet pour stocker ces données. Nous le ferons simplement correspondre aux différents champs.
Voici comment j’ai implémenté cet objet, vous pouvez le modifier selon vos goûts et si vous désirez demander plus d’information à l’utilisateur.
Visual Basic
Public Class Client Public Property FullName As String Public Property Gender As String Public Property Address As String Public Property Details As String Public Sub New(FullName As String, Gender As String, Address As String, Details As String) Me.FullName = FullName Me.Gender = Gender Me.Address = Address Me.Details = Details End Sub End Class
C#
namespace FormsControls { class Client { public string FullName { get; set; } public string Gender { get; set; } public string Address { get; set; } public string Details { get; set; } public Client(string FullName, string Gender, string Address, string Details) { this.FullName = FullName; this.Gender = Gender; this.Address = Address; this.Details = Details; } } }
Je vous recommande très fortement de modifier au minimum le nom des contrôles que vous comptez utiliser dans votre code, ceci vous simplifiera la tâche pour les retrouver une fois que vous travaillerez en arrière-plan.
Encore un autre exemple pour un nom serait : tbFirstName, tbLastName, et autre.
Vous pouvez modifier certaines autres propriétés sur le formulaire comme la longueur du texte maximale acceptée dans le boîtes de texte. Toutefois, je m’arrête maintenant pour ce qui est de l’interface.
Dans le code, la première étape sera de valider les entrées de l’utilisateur, rappelez-vous toujours que vous ne pouvez pas lui faire confiance et que vous devez vérifier ses entrées pour vous assurer qu’elles sont conformes à ce à quoi vous vous attendez.
Il y a plusieurs façons d’effectuer la validation selon jusqu’où on souhaite aller. Dans le cas présent, je validerai seulement si l’utilisateur a entré une valeur dans chacune des TextBoxes/ComboBoxesThere. Double cliquez sur le bouton pour accéder à son événement par défaut dans le code.
Visual Basic
Public Class frmClients Private Sub btnAddUser_Click(sender As Object, e As EventArgs) Handles btnAddUser.Click If txtFullName.Text = String.Empty Or txtAddress.Text = String.Empty Or cbGender.Text = String.Empty Or rtbDetails.Text = String.Empty Then MessageBox.Show("") Return End If 'Standard process goes here End Sub End Class
C#
private void btnAddUser_Click(object sender, EventArgs e) { if (txtFullName.Text == String.Empty || txtAddress.Text == String.Empty || cbGender.Text == String.Empty || rtbDetails.Text == String.Empty) { MessageBox.Show("All fields must be filled."); return; } }
Note : gardez en tête que si vous copiez et collez ce code, vous devrez probablement entrer le nom de l’événement manuellement dans la section Events de la fenêtre Properties
Dans le code ci-dessus, je valide simplement les entrées de l’utilisateur avec un if pour ensuite lui renvoyer un message d’erreur et sortir de la méthode si une erreur s’est produite. Dans tout autre cas le code continuera son chemin vers le commentaire. Cet avertissement donnera la chance à l’utilisateur de corriger les données entrées.
Toujours dans la même méthode, nous allons créer un objet de type Client en mémoire et y mettre l’information entrée par notre utilisateur.
Visual Basic
Public Class frmClients Private Sub btnAddUser_Click(sender As Object, e As EventArgs) Handles btnAddUser.Click If txtFullName.Text = String.Empty Or txtAddress.Text = String.Empty Or cbGender.Text = String.Empty Or rtbDetails.Text = String.Empty Then MessageBox.Show("") Return End If Dim FullName As String Dim Address As String Dim Gender As String Dim Details As String FullName = txtFullName.Text Address = txtAddress.Text Gender = cbGender.Text Details = rtbDetails.Text Dim NewClient As New Client(FullName, Gender, Address, Details) End Sub End Class
C#
public partial class frmUsers : Form { public frmUsers() { InitializeComponent(); } private void btnAddUser_Click(object sender, EventArgs e) { // Validation. if (txtFullName.Text == String.Empty || txtAddress.Text == String.Empty || cbGender.Text == String.Empty || rtbDetails.Text == String.Empty) { MessageBox.Show("All fields must be filled."); return; } // Processus standard. string FullName = txtFullName.Text; string Address = txtAddress.Text; string Gender = cbGender.Text; string Details = rtbDetails.Text; Client NewClient = new Client(FullName, Address, Gender, Details); MessageBox.Show(NewClient.ToString()); } }
Je tiens à vous faire remarquer que j’utilise des variables pour stocker le contenu des TextBoxes avant de créer mon objet. Il n’est pas obligatoire d’effectuer la tâche de cette façon, vous pourriez simplement écrire :
' Visual Basic
Dim NewClient As Client = New Client(txtFirstName.Text, txtLastName.Text, cbGender.Text, rtbDetails.Text)
// C#
Client NewClient = new Client(txtFirstName.Text, txtLastName.Text, cbGender.Text, rtbDetails.Text);
La seule raison qui me pousse à déclarer des variables est la lisibilité et que je souhaite séparer au maximum l’interface de la logique.
À la dernière ligne, j’utilise la méthode ToString() de l’objet Client pour l’écrire de telle sorte que l’utilisateur puisse avoir une présentation adéquate dans le Message Box. De base, une classe contient toujours une méthode ToString(), mais pour modifier la façon dont elle agit, nous devons l’override, c’est à dire écraser celle de la classe maître Object.
Visual Basic
Public Class Client Public Property FullName As String Public Property Gender As String Public Property Address As String Public Property Details As String Public Sub New(FullName As String, Gender As String, Address As String, Details As String) Me.FullName = FullName Me.Gender = Gender Me.Address = Address Me.Details = Details End Sub Public Overrides Function ToString() As String Dim OutputString As String OutputString = String.Format("Client added \nFull name: {0} \nGender: {1} \nAddress: {2} \nDetails: {3}", FullName, Gender, Address, Details) Return OutputString End Function End Class
C#
namespace FormsControls { class Client { public string FullName { get; set; } public string Gender { get; set; } public string Address { get; set; } public string Details { get; set; } public Client(string FullName, string Gender, string Address, string Details) { this.FullName = FullName; this.Gender = Gender; this.Address = Address; this.Details = Details; } public override string ToString() { string OutputString = String.Empty; OutputString = String.Format("Client added \nFull name: {0} \nGender: {1} \nAddress: {2} \nDetails: {3}", FullName, Gender, Address, Details); return OutputString; } } }
Portez une attention particulière au mot-clé override (Overrides en Visual Basic). Cet ajout indique que nous voulons écraser la version du parent (dans notre cas: Object) de la méthode ToString(). “\n” revient comme nous l’avons vu dans d’autres tutoriels, il sert à faire un saut de ligne dans la console ou autre.
Vous pouvez maintenant tester votre programme et n’entrer aucune valeur dans un ou plusieurs des champs pour voir ce qui arrivera. Encore une fois, les breakpoints peuvent être très utiles si vous n’êtes pas certain de ce que l’ordinateur fait à un moment ou à un autre!
YouTube
Visual Basic
C#
No Comments Yet!
You can be first to comment this post!