WebBrowser en C# et Windows Form - 04-20-2016
Transcription
WebBrowser en C# et Windows Form - 04-20-2016
WebBrowser en C# et Windows Form - 04-20-2016 Par DjezusKryst de FREEDOM SUBSTITUTE - http://www.freedom-substitute.fr WebBrowser en C# et Windows Form http://www.freedom-substitute.fr/programmation/c-sharp/webbrowser-c-windowsforms/ Les WebBrowser en C# sont utilisés afin d’afficher des pages webs sur vos applications. Ils disposent de pas mal de paramètres qui une fois combinés peuvent se révéler très utiles dans vos programmes ! Par exemple, pour ce cours nous allons programmer une application qui peut être utile dans une école, elle pourra bloquer l’accès a des sites et permettre de naviguer uniquement sur des sites que les professeurs auront ajoutés à la “liste blanche”. Form 1 Notre première form sera celle permettant de choisir si l’ont veut se connecter soit en tant que professeur ou élève. Elle est donc relativement simple à réaliser, un label et deux boutons. 1 / 11 WebBrowser en C# et Windows Form - 04-20-2016 Par DjezusKryst de FREEDOM SUBSTITUTE - http://www.freedom-substitute.fr Code type d’un bouton pour ouvrir une form : private void prof_Click(object sender, EventArgs e) { Form2 f2 = new Form2(); f2.Show(); } Form 2 Notre deuxième fenêtre est celle qui regroupera toutes les options dont disposeront nos professeurs. C’est dans cette form qu’ils pourront ajouter ou supprimer des sites. Afin de sécuriser cette form il est donc utile de créer une identification ! 2 / 11 WebBrowser en C# et Windows Form - 04-20-2016 Par DjezusKryst de FREEDOM SUBSTITUTE - http://www.freedom-substitute.fr Voici le code de notre exemple pemettant d’afficher l’administration une fois les bons identifiants rentrés : private void button1_Click(object sender, EventArgs e) { bool reussi; if (textBox1.Text == "admin" && textBox2.Text == "admin") { MessageBox.Show("Authentification réussie"); reussi = true; } else { MessageBox.Show("Authentification échouée"); reussi = false; } if (reussi == true) { button1.Visible = false; label1.Visible = false; label2.Visible = false; label3.Visible = false; label4.Visible = true; textBox3.Visible = true; button2.Visible = true; label5.Visible = true; 3 / 11 WebBrowser en C# et Windows Form - 04-20-2016 Par DjezusKryst de FREEDOM SUBSTITUTE - http://www.freedom-substitute.fr label6.Visible = true; listBox1.Visible = true; button3.Visible = true; button4.Visible = true; button6.Visible = true; button5.Visible = false; listBox1.Items.Clear(); string[] lignes = File.ReadAllLines("liste.txt"); foreach (string line in lignes) { string[] tokens = line.Split(','); listBox1.Items.Add(tokens[0]); } } } Ici pas grand chose de compliqué, si on entre “admin” en identifiant et mot de passe, alors on cache les champs d’identifications et on montre ceux d’administration. Les lignes les plus compliqués sont celles du bas : string[] lignes = File.ReadAllLines("liste.txt"); foreach (string line in lignes) { string[] tokens = line.Split(','); listBox1.Items.Add(tokens[0]); } Elles ont pour but d’actualiser les objets de notre listBox qui regroupera les sites que nous avons déjà ajoutés à notre “liste blanche”. Cela se fait donc par le biais d’un fichier texte s’appelant “liste.txt” ici. Une fois que l’on est enfin connecté, nous avons par exemple une form comme celle-ci qui apparaît : 4 / 11 WebBrowser en C# et Windows Form - 04-20-2016 Par DjezusKryst de FREEDOM SUBSTITUTE - http://www.freedom-substitute.fr Ici, on entre le site dans l’encadré blanc du haut, on clique sur ajouter et voilà, il sera ajouté dans notre liste blanche pour les élèves ! Nous allons donc ici étudier le fonctionnement de notre bouton “Ajouter” puisque c’est notre seule fonctionnalité primordiale: private void button2_Click(object sender, EventArgs e) { // confirme sur la combobox du dessous que le choix est enregistre r listBox1.Items.Add(textBox3.Text); // enregistre la frappe dans un fichier texte 5 / 11 WebBrowser en C# et Windows Form - 04-20-2016 Par DjezusKryst de FREEDOM SUBSTITUTE - http://www.freedom-substitute.fr string[] texte = { textBox3.Text}; string emplacement = "liste.txt"; // Creation du writer pour entrer des entrées using (StreamWriter sw = new StreamWriter(emplacement, true)) { sw.WriteLine(textBox3.Text); sw.Flush(); sw.Close(); } MessageBox.Show("Site ajouté ! "); } La première instruction ici, listBox1.Items.Add(textBox3.Text); Sert simplement à copier ce qu’on à écrit dans notre liste du dessous pour avoir une vue en direct de ce qui est actuellement “whitelisté” ou non. Ensuite, string[] texte = { textBox3.Text}; string emplacement = "liste.txt"; // Creation du writer pour entrer des entrées using (StreamWriter sw = new StreamWriter(emplacement, true)) { sw.WriteLine(textBox3.Text); sw.Flush(); sw.Close(); } Un streamWriter permet d’ouvrir un “courant” enregistrant ce que l’on veut dans ce que l’on veut (en quelque sorte…). Par exemple ici, on lui dis d’enregistrer ce qu’il y a dans notre textBox3 (la où on marque nos sites) dans 6 / 11 WebBrowser en C# et Windows Form - 04-20-2016 Par DjezusKryst de FREEDOM SUBSTITUTE - http://www.freedom-substitute.fr notre fichier “liste.txt”: using (StreamWriter sw = new StreamWriter(emplacement, true)) { sw.WriteLine(textBox3.Text); “emplacement” étant ici notre variable déclaré précédemment permettant d’indiquer où enregistrer notre fichier de sortie. Et enfin une fois que tout est écrit, on ferme et on nettoie le “courant” : sw.Flush(); sw.Close(); Et voilà, à partir de là vous savez lire et écrire dans un fichier, c’est déjà ça ! Form 3 Notre Form3 sera notre dernière, c’est donc celle des élèves. Comme pour les professeurs, je me suis dis qu’utiliser un compte élève pourrait être sympa. 7 / 11 WebBrowser en C# et Windows Form - 04-20-2016 Par DjezusKryst de FREEDOM SUBSTITUTE - http://www.freedom-substitute.fr Pour nous connecter on pourra utiliser dans notre cas : Identifiant : Thomas | Mot de passe : 1234 Une fois connecté on atterri alors sur notre WebBrowser qui ressemble à ça : 8 / 11 WebBrowser en C# et Windows Form - 04-20-2016 Par DjezusKryst de FREEDOM SUBSTITUTE - http://www.freedom-substitute.fr À noter qu’ici notre bouton “Mettre à jour” n’est pas obligatoire, il sert juste à lire de nouveau le contenu de notre fichier texte (pour être sûr). Autrement le chargement peut se faire au démarrage de la Form avec un code similaire à celui de notre Form2. Le code de notre mise à jour est le suivant : 9 / 11 WebBrowser en C# et Windows Form - 04-20-2016 Par DjezusKryst de FREEDOM SUBSTITUTE - http://www.freedom-substitute.fr comboBox2.Visible = true; button1.Visible = false; string[] lignes = File.ReadAllLines("liste.txt"); foreach (string line in lignes) { string[] tokens = line.Split(','); comboBox2.Items.Add(tokens[0]); } Une fois que l’ont a appuyé sur ce bouton, on pourra apercevoir une liste de sites, c’est celle du fichier texte que les profs ont crées ! Et comme notre WebBrowser n’a pas de barre d’adresse, les élèves sont obligés d’utiliser notre liste. Alors après vous allez me dire, comment est-ce que notre comboBox peut changer l’adresse de notre WebBrowser ? Et bien une seule ligne de code dans notre comboBox suffit. private void comboBox2_SelectedIndexChanged(object sender, EventArgs e ) { webBrowser1.Navigate(comboBox2.SelectedItem.ToString()); } Avec cette ligne de code, à chaque fois que l’ont change notre sélection dans la liste de sites le WebBrowser navigue vers ce site. Pour créer la proprieté “SelectedIndexChanged”, il suffis de cliquer sur votre comboBox, de cliquer sur l’éclair en de la fenêtre proprieté et enfin double cliquer sur “SelectedIndexChanged”. 10 / 11 WebBrowser en C# et Windows Form - 04-20-2016 Par DjezusKryst de FREEDOM SUBSTITUTE - http://www.freedom-substitute.fr Et voilà pour les fondamentaux, si vous voulez le programme complet vous pouvez le télécharger cidessous. Télécharger l’exemple Télécharger _______________________________________________ FREEDOM SUBSTITUTE 11 / 11 Powered by TCPDF (www.tcpdf.org)