0

Créer un BlocNote (part2)

tutoblocnote

Dans visual basic 6 , la gestion des fichier se réalisait en utilisant les fonction d’ouverture open,append, input,output.

Dans visual basic.net (orienté Objet) la gestion des fichier se réalise a partir de l’espace de nom System.IO qui duplique et développe l’objet système de fichier et nous permet de lire et d’écrire des caractères vers des flux ou des fichiers.

Nous allons voir dans ce tutoriel: Comment utiliser le system Objet pour créer un bloc note.

Prérequis : partie 1 (ouverture et sauvegarde d’un fichier txt, récupération d’information sur le fichier)

dans cette partie nous allons voir :

  • Mise en gras
  • Mise en italique
  • Soulignement
  • Choix de la police
  • Choix de la taille de la police
  • Choix de la couleur du texte
  • Alignement du texte (gauche, droite , centré)
  • Ajouter une zone de liste (bullet)
  • bouton Couper, Copier, Coller

Télécharger le code source

 

Rajouter sur votre Form : une barre d’outils, puis ajouter sur cette barre d’outils

  • 13 boutons (gras, italique,souligné,barré,gauche,centré,droite,enveleindentation, indentation,liste a puce, couper, copier coller)
  • 3 combobox (taille police, police, couleur)
Dans l’exemple, le nom de nos bouton commence tous par mnu_ puis la fonction
Exemple :
mnu_gras
mnu_italique…

Listes des polices disponibles 

Au chargement de la form, nous allons commencer par charger la liste des polices disponibles dans le combo mnu_police de la barre d’outils :
Insérer le code suivant dans le form_load
‘ajoute toute les polices du systeme à la barre d’outils police
For Each Font As System.Drawing.FontFamily In System.Drawing.FontFamily.Families
   mnu_police.Items.Add(Font.Name)
Next
'on affiche par défaut la police du richtextbox
mnu_police.Text = TResFichier.Font.Name

 

Tailles des polices disponibles 

Nous allons ensuite ajouter la taille des polices dans le combo mnu_taillepolice

 

‘on ajoute la taille des police

Dim i As Integer
For i = 6 To 48 Step 2
   mnu_taillepolice.Items.Add(i)
Next
'on affiche la taille par défault
mnu_taillepolice.Text = TResFichier.Font.Size

 

Ajout du choix des couleurs

Puis les couleurs du system dans le combo mnu_couleur, en affichant la couleur noir par défault

‘On ajoute toute les couleurs du systeme a la barre d’outils couleur

'on part sur n'importe quelle couleur , le but est juste de recuperer le type
Dim oT As Type = System.Drawing.Color.Beige.GetType
'obtention des propriétés du type dans un tableau
Dim oProperties() As System.Reflection.PropertyInfo = oT.GetProperties
Dim oP As System.Reflection.PropertyInfo
'itération
For Each oP In oProperties
   If oP.CanRead Then
mnu_couleur.Items.Add(oP.Name)
End If

 

Fonctions gras, italiques, souligné, barré 

Ensuite pour les bouton mnu_gras, mnu_italique, mnu_souligne, mnu_barre, de la barre d’outils sur l’événement clic
rajouter le code suivant :

'Mettre en gras
Private Sub mnu_gras_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnu_gras.Click
If TResFichier.SelectionFont.Bold Then
   TResFichier.SelectionFont = New Font(TResFichier.SelectionFont, FontStyle.Regular)
Else
   TResFichier.SelectionFont = New Font(TResFichier.SelectionFont, FontStyle.Bold)
End If
End Sub

'souligné
Private Sub mnu_souligne_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnu_souligne.Click
If TResFichier.SelectionFont.Underline Then
   TResFichier.SelectionFont = New Font(TResFichier.SelectionFont, FontStyle.Regular)
Else
   TResFichier.SelectionFont = New Font(TResFichier.SelectionFont, FontStyle.Underline)
End If
End Sub

'italique
Private Sub mnu_italique_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnu_italique.Click
If TResFichier.SelectionFont.Italic Then
   TResFichier.SelectionFont = New Font(TResFichier.SelectionFont, FontStyle.Regular)
Else
   TResFichier.SelectionFont = New Font(TResFichier.SelectionFont, FontStyle.Italic)
End If
End Sub

'barré
Private Sub mnu_barre_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnu_barre.Click
If TResFichier.SelectionFont.Strikeout Then
   TResFichier.SelectionFont = New Font(TResFichier.SelectionFont, FontStyle.Regular)
Else
   TResFichier.SelectionFont = New Font(TResFichier.SelectionFont, FontStyle.Strikeout)
End If
End Sub

Fonctions d’alignements gauche, centré, droite, indentation 

On s’attaque maintenant aux alignements, ce sont les boutons mnu_gauche, mnu_centre, mnu_droite, mnu_enleveindente, mnuindente, toujours dans l’évènement click

 

'alignement gauche
Private Sub mnu_gauche_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnu_gauche.Click
TResFichier.SelectionAlignment = HorizontalAlignment.Left
End Sub

'alignement centré
Private Sub mnu_centre_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnu_centre.Click
TResFichier.SelectionAlignment = HorizontalAlignment.Center
End Sub

'alignement droite
Private Sub mnu_droit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnu_droit.Click
TResFichier.SelectionAlignment = HorizontalAlignment.Right
End Sub

'indente de 20 a chaque click
Private Sub mnu_indent_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnu_indent.Click
TResFichier.SelectionIndent = TResFichier.SelectionIndent + 20

End Sub

'enleve l'indentation
Private Sub mnu_enleveindent_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnu_enleveindent.Click
TResFichier.SelectionIndent = TResFichier.SelectionIndent - 20
End Sub

 

Fonction de Listes ordonnées

La zone de liste, bouton mnu_bullet, événement click :

Private Sub mnu_bullet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnu_bullet.Click
If TResFichier.SelectionBullet Then
   TResFichier.SelectionBullet = False
Else
   TResFichier.SelectionBullet = True
End If
End Sub

Fonctions couper, copier, coller 

Puis les fonctions couper, copier, coller : mnu_couper, mnu_copier, mnu_coller, événement click

'couper
Private Sub mnu_couper_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnu_couper.Click
Clipboard.SetText(TResFichier.SelectedRtf)
TResFichier.SelectedText = ""
End Sub

'copier
Private Sub mnu_copier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnu_copier.Click
Clipboard.SetText(TResFichier.SelectedRtf)
End Sub

'coller
Private Sub mnu_coller_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnu_coller.Click
TResFichier.SelectedRtf = Clipboard.GetText
End Sub

Fonctions choix de la police, sa taille, sa couleur 

Et pour finir, la police, taille de police et couleur, sur l’évènement DropDownClosed , mnu_police, mnu_taillepolice, mnu_couleur

'choix de la couleur
Private Sub mnu_couleur_DropDownClosed(ByVal sender As Object, ByVal e As System.EventArgs) Handles mnu_couleur.DropDownClosed
'on créer un nouvelle instance de couleur
Dim instColor As Color
'que l'on definie par son nom
instColor = Color.FromName(mnu_couleur.SelectedItem)
'puis On l'affecte
TResFichier.SelectionColor = instColor
End Sub

'choix de la police
Private Sub mnu_police_DropDownClosed(ByVal sender As Object, ByVal e As System.EventArgs) Handles mnu_police.DropDownClosed
Dim newsize As Single = mnu_taillepolice.Text
TResFichier.SelectionFont = New Font(mnu_police.SelectedItem.ToString, TResFichier.SelectionFont.Size)
End Sub

'choix de la taille de la police
Private Sub mnu_taillepolice_DropDownClosed(ByVal sender As Object, ByVal e As System.EventArgs) Handles mnu_taillepolice.DropDownClosed
Dim newsize As Single = mnu_taillepolice.SelectedItem
TResFichier.SelectionFont = New Font(TResFichier.SelectionFont.Name, newsize)
End Sub

Voila, c’est un bon début, si vous souhaitez d’autre fonctions n’hésitez pas à laisser un commentaire.

Télécharger le code source du tuto