none
Sélectionner une image dans une richTextBox RRS feed

  • Question

  • Bonjour,

    Je suis en train de créer un éditeur de texte, et j'ai déjà implémenté des fonctions comme modifier la couleur du texte, la taille du texte, le style (italique, gras, souligné, barré), ou encore insérer des images.

    Voici comment j'insère des images :

    Sub insertImage()

    img = dataMethods.imageValue.fromComputer() If img IsNot parameter.images.errorImage Then Clipboard.SetImage(img) textRichTextBox.Paste() End If

    End Sub

    Shared Function fromComputer() As Image Try Dim imageDialog As New OpenFileDialog imageDialog.Filter = "Fichiers images|*.png;*.jpg;*.gif;*.bmp;*.raw;*.nef;*.tif;*.eps|Tous les fichiers|*.*Fic" If imageDialog.ShowDialog = DialogResult.OK Then Return dataMethods.imageValue.fromFile(imageDialog.FileName) Else Return parameter.images.errorImage End If Catch ex As Exception parameter.errorLibrary.showException("Erreur lors de la saisie d'une image depuis l'ordinateur", ex) Return Nothing End Try

    End Function

    Jusque là, tout va bien.

    Mais pourquoi au moment de réduire la taille de l'image il y a-t-il des stries noires qui apparaissent dessus ?

    J'ai donc voulu contourner le problème en essayant d'inclure une fonction qui réduirait (ou augmenterait) la taille de l'image. Je ne l'ai pas encore faite, mais je pars sur l'hypothèse que je ne rencontrerais aucun problème. Je voudrais que ces boutons n’apparaissent uniquement que quand on clique sur l'image.

    Le vrai problème est : Est-il possible de déclencher un évènement quand une image dans un RichTextBox est sélectionné ? Si oui, comment ?

    Merci d'avance pour vos réponses, là je sèche...


    Nathan

    mercredi 26 juin 2019 09:26

Réponses

  • Bonjour,

    Avez-vous essayé avec l'événement GotMouseCapture ?

    Cordialement,
    Nina


    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    jeudi 27 juin 2019 09:15
    Modérateur
  • Bonjour,

    De quel type est votre projet - WPF ou Windows Forms? L'événement GotMouseCapture est convenable pour les projet WPF, si votre projets est Windows Forms, alors essayez avec l'événement Control.MouseUp. Par exemple:

    Private Sub textRichTextBox_MouseUp(sender As Object, e As MouseEventArgs) Handles textRichTextBox.MouseUp
            If textRichTextBox.SelectedRtf.Contains("\pict") Then
                MessageBox.Show("Une image a été sélectionnée.")
            End If
       End Sub



    Cordialement,
    Nina


    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    vendredi 28 juin 2019 08:40
    Modérateur

Toutes les réponses

  • Bonjour,

    Avez-vous essayé avec l'événement GotMouseCapture ?

    Cordialement,
    Nina


    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    jeudi 27 juin 2019 09:15
    Modérateur
  • Bonjour,

    Je viens d'essayer avec l'évènement que vous m'avez conseillé, et ce qui est bizarre c'est que cet évènement n'existe pas pour la classe RichTextBox...

    Private WithEvents newRichTextBox As New RichTextBox
    
    Private Sub test1(sender As Object, e As EventArgs) Handles newRichTextBox.MouseCaptureChanged
    
    End Sub
    
    Private Sub test2(sender As Object, e As EventArgs) Handles newRichTextBox.GotMouseCapture
    
    End Sub

    Dans l'exemple que j'ai fait, VB me dit que l'évènement GotMouseCapture est introuvable. (Et en effet, j'ai vérifié dans la classe il n'existe pas).

    Mais peut-être que ce n'est pas comme ça qu'il faut faire... Est-ce que l'évenèment s'appelle autrement ou est-ce que je m'y prends mal ?


    Nathan

    jeudi 27 juin 2019 12:10
  • Bonjour,

    De quel type est votre projet - WPF ou Windows Forms? L'événement GotMouseCapture est convenable pour les projet WPF, si votre projets est Windows Forms, alors essayez avec l'événement Control.MouseUp. Par exemple:

    Private Sub textRichTextBox_MouseUp(sender As Object, e As MouseEventArgs) Handles textRichTextBox.MouseUp
            If textRichTextBox.SelectedRtf.Contains("\pict") Then
                MessageBox.Show("Une image a été sélectionnée.")
            End If
       End Sub



    Cordialement,
    Nina


    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    vendredi 28 juin 2019 08:40
    Modérateur
  • Merci Nina,

    Mon projet est effectivement un projet Windows Forms, et l'évenement que vous m'avez donné correspond parfaitement à ce que j'attendais.

    Je connaissais déjà l'évènement, mais je ne savais pas comment détecter s'il y avait une image dans la sélection.

    Merci beaucoup !


    Nathan

    vendredi 28 juin 2019 09:16