в списке событий окна Properties
Для реализации операции Drag-and-Drop в списке событий окна Properties элемента RichTextBox нет нужных нам событий DragDrop и DragEnter, поэтому в области Windows Form Designer generated code нам придется объявить обработчиков для этих событий:
// // richTextBox1 // … this.richTextBox1.DragDrop += new System.Windows.Forms.DragEventHandler (this.richTextBox1_DragDrop); this.richTextBox1.DragEnter += new System.Windows.Forms.DragEventHandle r(this.richTextBox1_DragEnter);
Делаем проверку на соответствие формату String:
private void richTextBox1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.Text)) e.Effect = DragDropEffects.Copy; else e.Effect = DragDropEffects.None; }
Элемент RichTextBox может содержать текст, который нам следует не замещать, а добавлять к нему перетаскиваемый фрагмент. Поэтому обработчик события DragDrop будет немного сложнее:
private void richTextBox1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) { int i; String s;
// Определяем начальную позиция для текста i = richTextBox1.SelectionStart; s = richTextBox1.Text.Substring(i); richTextBox1.Text = richTextBox1.Text.Substring(0,i);
// Перетаскиваем текст richTextBox1.Text = richTextBox1.Text + e.Data.GetData(DataFormats.Text).ToString(); richTextBox1.Text = richTextBox1.Text + s; }
Запускаем приложение. Теперь можно перетаскивать текст из верхнего текстового поля в нижнее, а в элемент RichTextBox — даже фрагмент текста из Microsoft Word (рис. 3.2):

увеличить изображение
Рис. 3.2. Приложение DragAndDrop, перетаскивание фрагмента текста из Microsoft Word
На диске, прилагаемом к книге, вы найдете приложение DragAndDrop (Code\Glava3\ DragAndDrop).