Vous ne pouvez pas déplacer du texte dans un contrôle RichTextBox à l'aide d'un exemple de code à partir de la documentation MSDN

Traductions disponibles Traductions disponibles
Numéro d'article: 814309 - Voir les produits auxquels s'applique cet article
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Informations sur la version bêta
Cet article traite de la version bêta d'un Microsoft produit. Les informations contenues dans cet article sont fournies en tant que, sont et sujettes à modification sans préavis.

Aucun support produit officiel n'est disponible auprès de Microsoft pour ce produit bêta. Pour savoir comment faire pour obtenir de l'assistance sur une version bêta, consultez la documentation fournie avec la version bêta de fichiers du produit, ou effectuez une recherche sur le site Web à partir de laquelle vous avez téléchargé la version.
Agrandir tout | Réduire tout

Sommaire

Symptômes

Vous essayez de faire glisser un contrôle RichTextBox avec le code dans les « Activation glisser-déplacer opérations avec le contrôle Windows Forms RichTextBox « document MSDN. La modification peut se produire dans le pointeur lorsque vous faites glisser le texte à partir de WordPad. Toutefois, vous ne peut pas supprimer le texte à partir de la RichTextBox .

Cause

Ce problème se produit car il n'y a aucun code pour l'événement directe dans la documentation MSDN. Par conséquent, vous ne pouvez pas supprimer le texte que vous sélectionnez dans WordPad dans le RichTextBox .

Résolution

Pour contourner ce problème, ajoutez un événement DragDrop pour RichTextBox1 . Pour ce faire, utilisez les instructions suivantes.

Visual Basic .NET ou Visual Basic 2005

Ajoutez le code suivant dans l'événement DragDrop RichTextBox1 :
   Dim i As Int16 
   Dim s As String

   ' Get Start Position For the for Dropping the Text  
   i = RichTextBox1.SelectionStart
   s = RichTextBox1.Text.Substring(i)
   RichTextBox1.Text = RichTextBox1.Text.Substring(0, i)

   ' Drop the Text on to the RichTextBox
   RichTextBox1.Text = RichTextBox1.Text + e.Data.GetData(DataFormats.Text).ToString()
   RichTextBox1.Text = RichTextBox1.Text + s
   
Visual C# .NET ou Visual C# 2005

Ajoutez le code suivant au constructeur de classe Form1 après l'instruction InitializeComponent() :
// Handler for DragDrop event
this.richTextBox1.DragDrop += new System.Windows.Forms.DragEventHandler(this.rtb_dragdrop);
ajouter la procédure suivante au code après la méthode Main() :
private void rtb_dragdrop(object sender,DragEventArgs e)
{
   int i;
   String s;
   
   // Get Start Position to Drop the Text  
   i = richTextBox1.SelectionStart;
   s = richTextBox1.Text.Substring(i);
   richTextBox1.Text = richTextBox1.Text.Substring(0,i);

   // Drop the Text on the RichTextBox
   richTextBox1.Text = richTextBox1.Text + e.Data.GetData(DataFormats.Text).ToString();
   richTextBox1.Text = richTextBox1.Text + s;
}

Statut

Ce comportement est voulu par la conception même du produit.

Plus d'informations

Procédure pour reproduire le comportement

  1. Dans Visual Studio .NET ou Visual Studio 2005, créez un nouveau Windows projet d'application en utilisant Visual Basic .NET, Visual Basic 2005, Visual C# .NET ou Visual C# 2005.

    Par défaut, Form1 est créé.
  2. À partir de la boîte à outils, faites glisser un RichTextBox contrôle à Form1 .

    RichTextBox1 est créé sur Form1 .
  3. Cliquez avec le bouton droit sur RichTextBox1 , puis cliquez sur Propriétés .
  4. Dans la fenêtre Propriétés, définissez la valeur pour AllowDrop sur True .
  5. Cliquez avec le bouton droit sur Form1 , puis cliquez sur Afficher le code .
  6. Ajoutez le code suivant dans l'événement DragEnter RichTextBox1 :

    Visual Basic .NET ou de code Visual Basic 2005
       If (e.Data.GetDataPresent(DataFormats.Text)) Then
          e.Effect = DragDropEffects.Copy
       Else
          e.Effect = DragDropEffects.None
       End If
    
    Visual C# .NET ou Visual C# 2005 code
    private void rtb_dragenter(object sender,DragEventArgs e)
    {
       if (e.Data.GetDataPresent(DataFormats.Text)) 
          e.Effect = DragDropEffects.Copy ;
       else
          e.Effect = DragDropEffects.None ;
    }
  7. Essayez de faire glisser texte à partir de WordPad à RichTextBox1 .

    Vous ne pouvez pas supprimer le texte.

Références

Pour plus d'informations, reportez-vous au site de Web MSDN suivant :

L'activation de glisser-déplacer opérations avec les formulaires Windows contrôle RichTextBox
http://msdn2.microsoft.com/en-us/library/Aa984395(VS.71).aspx
Pour plus d'informations sur l'événement RichTextBox.DragEnter , l'événement RichTextBox.DragDrop , consultez votre documentation du Kit de développement .NET Framework SDK ou reportez-vous au site Web MSDN suivant :

Événement RichTextBox.DragEnter
http://msdn2.microsoft.com/en-us/library/system.windows.forms.richtextbox.dragenter(vs.71).aspx

Propriétés

Numéro d'article: 814309 - Dernière mise à jour: lundi 24 février 2014 - Version: 2.9
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Initiation
  • Microsoft Visual Basic .NET 2002 Initiation
  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# .NET 2003 Initiation
  • Microsoft Visual C# .NET 2002 Initiation
Mots-clés : 
kbnosurvey kbarchive kbmt kbvs2005swept kbvs2005applies kbprb kbwindowsforms kbproperties kbevent kbrichedit kbdragdrop KB814309 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 814309
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com