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

collargol123 Messages postés 86 Date d'inscription jeudi 24 octobre 2013 Statut Membre Dernière intervention 2 avril 2014 - 8 nov. 2013 à 00:28
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 9 nov. 2013 à 15:15
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

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
8 nov. 2013 à 12:12
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
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
8 nov. 2013 à 12:25
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é.
0
collargol123 Messages postés 86 Date d'inscription jeudi 24 octobre 2013 Statut Membre Dernière intervention 2 avril 2014
8 nov. 2013 à 13:43
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
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
8 nov. 2013 à 14:22
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

0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
8 nov. 2013 à 17:04
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


0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 209
8 nov. 2013 à 17:38
Ben mon vieux ...

Je me demande si ce ne serait finalement pas moins fastidieux de faire un couper/coller
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
8 nov. 2013 à 18:19
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.
0
collargol123 Messages postés 86 Date d'inscription jeudi 24 octobre 2013 Statut Membre Dernière intervention 2 avril 2014
8 nov. 2013 à 18:34
merci
je vais tester tout cela des que possible
je vous tiens au courant
0
collargol123 Messages postés 86 Date d'inscription jeudi 24 octobre 2013 Statut Membre Dernière intervention 2 avril 2014
8 nov. 2013 à 23:42
comment se fait-il alors que je n'ai pas eu à programmer le drag and drop en VB6 ?
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
9 nov. 2013 à 07:45
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.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 209
Modifié par ucfoutu le 9/11/2013 à 11:54
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
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
9 nov. 2013 à 15:15
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!
0
Rejoignez-nous