Glisser/Déplacer du texte dans une même richtextbox

Signaler
Messages postés
86
Date d'inscription
jeudi 24 octobre 2013
Statut
Membre
Dernière intervention
2 avril 2014
-
Messages postés
6963
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
13 octobre 2020
-
Bonjour,

C'est étonnant car en VB6 je n'ai pas eu à programmer un glisser/deplacer dans mes RTbox.

Ce n'est pas le cas en VBnet.
J'ai utilisé le code fournit par MSDN : http://msdn.microsoft.com/fr-fr/library/cc437516%28v=vs.71%29.aspx

Mais cela ne fonctionne pas, car :
1) je ne peux alors plus sélectionner le texte que je veux déplacer. C'est impossible. Pourtant j'ai allowdrop en true
2) ce code est utile pour deplacer du texte d'une RTB à une autre. Comment fait-on pour le déplacer au sein d'une meme RTBox ?

merci pour vos avis

10 réponses

Messages postés
6963
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
13 octobre 2020
113
Bonjour,
Regarde ceci:

http://msdn.microsoft.com/fr-fr/library/system.windows.forms.richtextbox.enableautodragdrop(v=vs.80).aspx

J'ai fait un essai, mais cela ne fonctionne pas à tout les coup, c'est assez aléatoire. Je vais essayer d'approfondir la question

cdlt
Messages postés
6963
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
13 octobre 2020
113
Il faut mettre la propriété EnableAutoDragDrop de le RichtextBox à True. Ensuite tu sélectionnes avec la souris l'endroit où tu veux mettre ton texte et après avec la souris tu fais ton déplacement. Il faut être patient! C'est pas gagné.
Messages postés
86
Date d'inscription
jeudi 24 octobre 2013
Statut
Membre
Dernière intervention
2 avril 2014

Bonjour,

Ou doit-on mettre "Public property" ?

Public Property EnableAutoDragDrop As Boolean
'Utilisation
Dim instance As RichTextBox
Dim value As Boolean

value = instance.EnableAutoDragDrop

instance.EnableAutoDragDrop = value
Messages postés
6963
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
13 octobre 2020
113
Public Class Form1
'Déclaration
Public Property EnableAutoDragDrop As Boolean
Dim instance As RichTextBox
Dim value As Boolean
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
RichTextBox1.Text = "azerty"
RichTextBox1.EnableAutoDragDrop = True
End Sub

Messages postés
6963
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
13 octobre 2020
113
Je crois que j'ai compris la manoeuvre :
Tu sélectionnes, tu relâches et tu sélectionnes de nouveau rapidement; Afin de voir le petit rectangle pointillé de copie. A ce moment tu fais ton glisser vers l'endroit que tu désires. Après plusieurs essais on a le coup de main.
Voici un code pour faire tes essais:

Public Class Form1
'Déclaration
Public Property EnableAutoDragDrop As Boolean

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
WriteTextToRichTextBox()
RichTextBox1.EnableAutoDragDrop = True
End Sub
Private Sub WriteTextToRichTextBox()
' Clear all text from the RichTextBox;
richTextBox1.Clear()
' Set the font for the opening text to a larger Arial font;
richTextBox1.SelectionFont = New Font("Arial", 16)
' Assign the introduction text to the RichTextBox control.
RichTextBox1.SelectedText = "The following is a list of bulleted items:" + ControlChars.Cr
' Set the Font for the first item to a smaller size Arial font.
richTextBox1.SelectionFont = New Font("Arial", 12)
' Specify that the following items are to be added to a bulleted list.
richTextBox1.SelectionBullet = True
' Set the color of the item text.
richTextBox1.SelectionColor = Color.Red
' Assign the text to the bulleted item.
richTextBox1.SelectedText = "Apples" + ControlChars.Cr
' Apply same font since font settings do not carry to next line.
richTextBox1.SelectionFont = New Font("Arial", 12)
richTextBox1.SelectionColor = Color.Orange
richTextBox1.SelectedText = "Oranges" + ControlChars.Cr
richTextBox1.SelectionFont = New Font("Arial", 12)
richTextBox1.SelectionColor = Color.Purple
richTextBox1.SelectedText = "Grapes" + ControlChars.Cr
' End the bulleted list.
richTextBox1.SelectionBullet = False
' Specify the font size and string for text displayed below bulleted list.
richTextBox1.SelectionFont = New Font("Arial", 16)
richTextBox1.SelectedText = "Bulleted Text Complete!"
End Sub


End Class


Entraîne-toi


Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
229
Ben mon vieux ...

Je me demande si ce ne serait finalement pas moins fastidieux de faire un couper/coller
Messages postés
6963
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
13 octobre 2020
113
Tout à fait d'accord avec toi. Le drag and drop d'un controle à un autre marche très bien, mais celui-ci n'est pas évident. Ce n'est pas publiable pour les utilisateurs.
Messages postés
86
Date d'inscription
jeudi 24 octobre 2013
Statut
Membre
Dernière intervention
2 avril 2014

merci
je vais tester tout cela des que possible
je vous tiens au courant
Messages postés
86
Date d'inscription
jeudi 24 octobre 2013
Statut
Membre
Dernière intervention
2 avril 2014

comment se fait-il alors que je n'ai pas eu à programmer le drag and drop en VB6 ?
Messages postés
6963
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
13 octobre 2020
113
L'explication est simple: c'est du VB.NET. Pour VB6 ucfoutu est plus au courant que moi pour te répondre.
Mets le lien que je t'ai donné dans tes favoris. Il sera ton compagnon pendant tout le temps que tu programmeras en VB.NET.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
229
Et moi, j'ignore tout du contrôle RichTextBox de VB.Net.
Pour ce qui est de celui de VB6, il suffit de mettre à Manual sa propriété Dragmode et à automatic ses propriétés OleDragmode et OleDropMode
Et aucun code n'est nécessaire !
Si plus compliqué avec VB.Net ===>> Vive VB6..., hein !_______________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
Messages postés
6963
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
13 octobre 2020
113
Non ce n'est pas plus compliqué, il faut mettre la propriété EnableAutoDragDrop de la RichtextBox à True . Petite précision avec les images cela fonctionne très bien. Je ne comprends pas qu'avec le texte il faut s'y prendre à 2 fois!