Создание Windows-приложений на основе Visual C#


           

в списке событий окна 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).


Содержание  Назад  Вперед