IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

VBNET Fonction Interaction Richtextbox et bouttons Bold Italic Underline


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Geek
    Inscrit en
    Janvier 2021
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Geek

    Informations forums :
    Inscription : Janvier 2021
    Messages : 6
    Par défaut VBNET Fonction Interaction Richtextbox et bouttons Bold Italic Underline
    Je me suis auto-formé grâce à des bouts de codes alors je me suis dit que je pouvais partager de temps en temps les codes sur lesquels j'ai cogité s'ils peuvent aider.

    Et en même temps on pourra peut être m'aider à améliorer mon coding.



    Principe : L'idée est de faire une fonction qui fait interagir les richtextbox avec des boutons. En cliquant sur les boutons on peut par la suite écrire dans la richtextbox en bold + italic + underline. On peut se déplacer dans la richtextbox.

    Les boutons une fois appuyés deviennent rouges pour permettre de continuer à éditer le texte. Par ailleurs si un texte est sélectionné dans la richtextbox le fait d'appuyer sur le bouton lui donne le style demandé.

    Nom : 2021-01-05 23_09_55-Window.png
Affichages : 134
Taille : 2,5 Ko

    Il y a deux fonctions, l'une pour éditer dans la richtextbox, l'autre qui régit les événements des boutons.

    L'une se place donc dans l'événement _TextChanged de la richtextbox
    formatrichtb(rtb0, com0comb, com0comu, com0comi).



    L'autre dans l'événement _Click du bouton
    clickbuttonformatrichbox(rtb0, ActiveControl, com0comb, com0comu, com0comi).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    Sub formatrichtb(RichTextBox As System.Windows.Forms.RichTextBox, ButtonBold As System.Windows.Forms.Button, ButtonUnderline As System.Windows.Forms.Button, ButtonItalic As System.Windows.Forms.Button)
            Dim positioncurseur As Long
     
            positioncurseur = RichTextBox.SelectionStart
     
     
            If RichTextBox.Text = "" Then Exit Sub 'prévient les erreurs du à des raccourcis claviers 
     
            If ButtonUnderline.ForeColor = Color.Red Or ButtonBold.ForeColor = Color.Red Or ButtonItalic.ForeColor = Color.Red Then
     
     
                RichTextBox.Select(positioncurseur - 1, 1) 'on selectionne le caractère qui vient d'être inscrit
            End If
     
            If ButtonUnderline.ForeColor = Color.Red And ButtonBold.ForeColor = Color.Red And ButtonItalic.ForeColor = Color.Red Then
     
     
     
     
     
                RichTextBox.SelectionFont = New System.Drawing.Font(RichTextBox.SelectionFont.FontFamily, RichTextBox.SelectionFont.Size, FontStyle.Underline Or FontStyle.Bold Or FontStyle.Italic)
     
     
            ElseIf ButtonBold.ForeColor = Color.Red And ButtonItalic.ForeColor = Color.Red Then
     
                RichTextBox.SelectionFont = New System.Drawing.Font(RichTextBox.SelectionFont.FontFamily, RichTextBox.SelectionFont.Size, FontStyle.Bold Or FontStyle.Italic)
            ElseIf ButtonUnderline.ForeColor = Color.Red And ButtonItalic.ForeColor = Color.Red Then
                RichTextBox.SelectionFont = New System.Drawing.Font(RichTextBox.SelectionFont.FontFamily, RichTextBox.SelectionFont.Size, FontStyle.Underline Or FontStyle.Italic)
            ElseIf ButtonUnderline.ForeColor = Color.Red And ButtonBold.ForeColor = Color.Red Then
                RichTextBox.SelectionFont = New System.Drawing.Font(RichTextBox.SelectionFont.FontFamily, RichTextBox.SelectionFont.Size, FontStyle.Underline Or FontStyle.Bold)
     
     
            ElseIf ButtonBold.ForeColor = Color.Red Then 'en cas de selection
     
     
                RichTextBox.SelectionFont = New System.Drawing.Font(RichTextBox.SelectionFont.FontFamily, RichTextBox.SelectionFont.Size, FontStyle.Bold)
     
     
     
            ElseIf ButtonItalic.ForeColor = Color.Red Then
     
                RichTextBox.SelectionFont = New System.Drawing.Font(RichTextBox.SelectionFont.FontFamily, RichTextBox.SelectionFont.Size, FontStyle.Italic)
     
     
     
            ElseIf ButtonUnderline.ForeColor = Color.Red Then
     
     
                RichTextBox.SelectionFont = New System.Drawing.Font(RichTextBox.SelectionFont.FontFamily, RichTextBox.SelectionFont.Size, FontStyle.Underline)
     
     
     
            End If
     
     
            If ButtonUnderline.ForeColor = Color.Red Or ButtonBold.ForeColor = Color.Red Or ButtonItalic.ForeColor = Color.Red Then RichTextBox.Select(positioncurseur, 0)
     
     
        End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    Sub clickbuttonformatrichbox(RichTextBox As System.Windows.Forms.RichTextBox, ActualButton As System.Windows.Forms.Button, ButtonBold As System.Windows.Forms.Button, ButtonUnderline As System.Windows.Forms.Button, ButtonItalic As System.Windows.Forms.Button)
     
     
     
     
     
            If RichTextBox.SelectionLength > 0 Then 'si un text est selectionné dans la richtextbox
     
     
     
                    If ActualButton Is ButtonBold Then
     
     
                        If RichTextBox.SelectionFont.Bold Then 'its already bold, so set it to regular
     
                            If RichTextBox.SelectionFont.Italic And RichTextBox.SelectionFont.Underline Then
                                RichTextBox.SelectionFont = New System.Drawing.Font(RichTextBox.SelectionFont.FontFamily, RichTextBox.SelectionFont.Size, FontStyle.Underline Or FontStyle.Italic)
     
                            ElseIf RichTextBox.SelectionFont.Italic Then
                                RichTextBox.SelectionFont = New System.Drawing.Font(RichTextBox.SelectionFont.FontFamily, RichTextBox.SelectionFont.Size, FontStyle.Italic)
     
                            ElseIf RichTextBox.SelectionFont.Underline Then
                                RichTextBox.SelectionFont = New System.Drawing.Font(RichTextBox.SelectionFont.FontFamily, RichTextBox.SelectionFont.Size, FontStyle.Underline)
     
                            Else 'il est seulement bold
                                RichTextBox.SelectionFont = New System.Drawing.Font(RichTextBox.SelectionFont.FontFamily, RichTextBox.SelectionFont.Size, FontStyle.Regular)
     
                            End If
     
     
     
                        Else 'make it bold
     
                            If RichTextBox.SelectionFont.Italic And RichTextBox.SelectionFont.Underline Then
                                RichTextBox.SelectionFont = New System.Drawing.Font(RichTextBox.SelectionFont.FontFamily, RichTextBox.SelectionFont.Size, FontStyle.Underline Or FontStyle.Italic Or FontStyle.Bold)
     
                            ElseIf RichTextBox.SelectionFont.Italic Then
                                RichTextBox.SelectionFont = New System.Drawing.Font(RichTextBox.SelectionFont.FontFamily, RichTextBox.SelectionFont.Size, FontStyle.Italic Or FontStyle.Bold)
     
                            ElseIf RichTextBox.SelectionFont.Underline Then
                                RichTextBox.SelectionFont = New System.Drawing.Font(RichTextBox.SelectionFont.FontFamily, RichTextBox.SelectionFont.Size, FontStyle.Underline Or FontStyle.Bold)
     
                            Else 'il est seulement bold
                                RichTextBox.SelectionFont = New System.Drawing.Font(RichTextBox.SelectionFont.FontFamily, RichTextBox.SelectionFont.Size, FontStyle.Bold)
                            End If
     
     
     
     
                        End If
     
     
     
     
     
     
                    ElseIf ActualButton Is ButtonItalic Then
     
     
                        If RichTextBox.SelectionFont.Italic Then 'its already italic, so set it to regular
     
                            If RichTextBox.SelectionFont.Bold And RichTextBox.SelectionFont.Underline Then
                                RichTextBox.SelectionFont = New System.Drawing.Font(RichTextBox.SelectionFont.FontFamily, RichTextBox.SelectionFont.Size, FontStyle.Underline Or FontStyle.Bold)
     
                            ElseIf RichTextBox.SelectionFont.Bold Then
                                RichTextBox.SelectionFont = New System.Drawing.Font(RichTextBox.SelectionFont.FontFamily, RichTextBox.SelectionFont.Size, FontStyle.Bold)
     
                            ElseIf RichTextBox.SelectionFont.Underline Then
                                RichTextBox.SelectionFont = New System.Drawing.Font(RichTextBox.SelectionFont.FontFamily, RichTextBox.SelectionFont.Size, FontStyle.Underline)
     
                            Else 'il est seulement bold
                                RichTextBox.SelectionFont = New System.Drawing.Font(RichTextBox.SelectionFont.FontFamily, RichTextBox.SelectionFont.Size, FontStyle.Regular)
     
                            End If
     
     
     
                        Else 'make it italic
     
                            If RichTextBox.SelectionFont.Bold And RichTextBox.SelectionFont.Underline Then
                                RichTextBox.SelectionFont = New System.Drawing.Font(RichTextBox.SelectionFont.FontFamily, RichTextBox.SelectionFont.Size, FontStyle.Underline Or FontStyle.Italic Or FontStyle.Bold)
     
                            ElseIf RichTextBox.SelectionFont.Bold Then
                                RichTextBox.SelectionFont = New System.Drawing.Font(RichTextBox.SelectionFont.FontFamily, RichTextBox.SelectionFont.Size, FontStyle.Italic Or FontStyle.Bold)
     
                            ElseIf RichTextBox.SelectionFont.Underline Then
                                RichTextBox.SelectionFont = New System.Drawing.Font(RichTextBox.SelectionFont.FontFamily, RichTextBox.SelectionFont.Size, FontStyle.Underline Or FontStyle.Italic)
     
                            Else 'il est seulement italic
                                RichTextBox.SelectionFont = New System.Drawing.Font(RichTextBox.SelectionFont.FontFamily, RichTextBox.SelectionFont.Size, FontStyle.Italic)
                            End If
     
                        End If
     
     
     
                    ElseIf ActualButton Is ButtonUnderline Then
     
                        If RichTextBox.SelectionFont.Underline Then 'its already underline, so set it to regular
     
                            If RichTextBox.SelectionFont.Bold And RichTextBox.SelectionFont.Italic Then
                                RichTextBox.SelectionFont = New System.Drawing.Font(RichTextBox.SelectionFont.FontFamily, RichTextBox.SelectionFont.Size, FontStyle.Italic Or FontStyle.Bold)
     
                            ElseIf RichTextBox.SelectionFont.Bold Then
                                RichTextBox.SelectionFont = New System.Drawing.Font(RichTextBox.SelectionFont.FontFamily, RichTextBox.SelectionFont.Size, FontStyle.Bold)
     
                            ElseIf RichTextBox.SelectionFont.Italic Then
                                RichTextBox.SelectionFont = New System.Drawing.Font(RichTextBox.SelectionFont.FontFamily, RichTextBox.SelectionFont.Size, FontStyle.Italic)
     
                            Else 'il est seulement underline
                                RichTextBox.SelectionFont = New System.Drawing.Font(RichTextBox.SelectionFont.FontFamily, RichTextBox.SelectionFont.Size, FontStyle.Regular)
     
                            End If
     
     
     
                        Else 'make it underline
     
                            If RichTextBox.SelectionFont.Bold And RichTextBox.SelectionFont.Italic Then
                                RichTextBox.SelectionFont = New System.Drawing.Font(RichTextBox.SelectionFont.FontFamily, RichTextBox.SelectionFont.Size, FontStyle.Underline Or FontStyle.Italic Or FontStyle.Bold)
     
                            ElseIf RichTextBox.SelectionFont.Bold Then
                                RichTextBox.SelectionFont = New System.Drawing.Font(RichTextBox.SelectionFont.FontFamily, RichTextBox.SelectionFont.Size, FontStyle.Underline Or FontStyle.Bold)
     
                            ElseIf RichTextBox.SelectionFont.Italic Then
                                RichTextBox.SelectionFont = New System.Drawing.Font(RichTextBox.SelectionFont.FontFamily, RichTextBox.SelectionFont.Size, FontStyle.Underline Or FontStyle.Italic)
     
                            Else 'il est seulement underline
                                RichTextBox.SelectionFont = New System.Drawing.Font(RichTextBox.SelectionFont.FontFamily, RichTextBox.SelectionFont.Size, FontStyle.Underline)
                            End If
     
                        End If
     
                    End If
                Else 'si pas de texte selectionné on met juste en rouge pour le boutton pour utilisation de formatrichtb
     
     
                    If ActualButton.ForeColor = Color.Red Then
                        ActualButton.ForeColor = Color.Black
     
                    Else
     
                        ActualButton.ForeColor = Color.Red
                    End If
     
                RichTextBox.Select() 'on selectionne la richtextbox pour directement écrire dedans
     
            End If
     
     
     
     
     
        End Sub

  2. #2
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,

    A lire ton message, je comprends que tu as écrit un éditeur de textes en utilisant une RichtTextBox.
    Mais je ne vois pas de question dans ton exposé.

    ... ???

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Geek
    Inscrit en
    Janvier 2021
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Geek

    Informations forums :
    Inscription : Janvier 2021
    Messages : 6
    Par défaut
    en effet c'est plus une proposition qu'une question. J'ai eu du mal à trouver des informations sur comment marche une richtextbox en vbnet donc si j'avais eu cette fonction au départ j'aurais avancé beaucoup plus vite. Il y a d'ailleurs plus de codes en c# qu'en vbnet. Après on peut me dire que j'aurais pu arriver à mes fins autrement.

  4. #4
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 574
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 574
    Par défaut
    Bonjour antoineboy75 et bonjour Phil Rob,
    Quelle est la finalité ?
    Faire un exercice pour apprendre à manipuler le RichtTextBox!

  5. #5
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Parfait ... merci d'avoir partagé.
    Excellente journée

Discussions similaires

  1. Comment créer une fonction interactive ?
    Par jack-ft dans le forum PL/SQL
    Réponses: 11
    Dernier message: 31/12/2014, 16h01
  2. Erreur "Can't map determine family/bold/italic for arial" impression factures
    Par jmbinformatique dans le forum Odoo (ex-OpenERP)
    Réponses: 5
    Dernier message: 03/03/2014, 10h17
  3. [VB.NET] Italic ET Bold dans un RichTextBox
    Par Tex-Twil dans le forum Windows Forms
    Réponses: 2
    Dernier message: 10/03/2008, 09h42
  4. [C# VS 2005 Express] Form/List/ListBox/RichTextBox interactions
    Par SDragon dans le forum Windows Forms
    Réponses: 4
    Dernier message: 19/07/2006, 19h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo