Программирование на   C# 
      
     
      
       Использование   Drag and Drop   при создании графическ...

      
       Использование   Darg'n'Drop   для   
       двух   TextBox   элементов

      
       События   при Drag'n'Drop 
      
     
      
       <ul>
        
         <li>Компонент, с которого данн...

      
       Обработка   MouseDown 
      
     
      
       <ul>
        
         <li>public   DragDropEffects   DoD...

      
       Эффекты   DragDropEffects 
      
     
      
       <ul>
        
         <li>Возможные эффекты 
       ...

      
       Пример использования   DoDragDrop 
      
     
      
       <ul>
        
         <li>private   void  te...

      
       Обработка   MouseEnter 
      
     
      
       <ul>
        
         <li>Возникает при попадании на эл...

      
       Объект   DragEventArgs , соответствующий событиям DragEnter, DragOver, DragDrop 
      
     
      
      ...

      
       Проверка наличия перетаскиваемых данных 
      
     
      
       <ul>
        
         <li>public   boo...

      
       Определение нажатых клавиш  на клавиатуре 
      
     
      
       <ul>
        
         <li>public   i...

      
       Пример использования   обработчика   DragEnter 
      
     
      
       <ul>
        
         <li>priva...

      
       Обработчик события   DragDrop 
      
     
      
       <ul>
        
         <li>Событие возникает при ...

      
       Пример использования обработчика   DragDrop 
      
     
      
       <ul>
        
         <li>private ...

      
       Пример работы программы

      
       Начальное окно программы

      
       Перетаскивание текста

      
       Перемещение текста

      
       Копирование текста

      
       Конец 
      
     
      
       Спасибо   за внимание 
      
     
      
       e-mail:  [email_address...
Upcoming SlideShare
Loading in …5
×

Drag And Drop Windows Forms

9,730 views

Published on

Published in: Education

Drag And Drop Windows Forms

  1. 1. Программирование на C# Использование Drag and Drop при создании графических приложений Windows Forms Алексей Бованенко
  2. 2. Использование Darg'n'Drop для двух TextBox элементов
  3. 3. События при Drag'n'Drop <ul> <li>Компонент, с которого данные будут перемещаться <ul> <li>MouseDown </ul> <li>Компонент, на который данные будут перемещаться <ul> <li>DragEnter <li>DragDrop </ul> </ul>
  4. 4. Обработка MouseDown <ul> <li>public DragDropEffects DoDragDrop ( Object data, DragDropEffects allowedEffects ) <ul> <li>data — данные, которые будут перемещаться <li>allowedEffects — допустимые эффекты при перетаскивании </ul> </ul>
  5. 5. Эффекты DragDropEffects <ul> <li>Возможные эффекты <ul> <li>None - нет эффектов <li>Copy - копирование <li>Move - перенос <li>Link - связывание <li>Scroll - перемещение по тексту <li>All - все эффекты </ul> </ul>
  6. 6. Пример использования DoDragDrop <ul> <li>private void textBox1_MouseDown( object sender, MouseEventArgs e) { textBox1.DoDragDrop( textBox1.Text, DragDropEffects .Copy | DragDropEffects .Move ); } </ul>
  7. 7. Обработка MouseEnter <ul> <li>Возникает при попадании на элемент, в который мы хотим поместить данные <li>Чтобы элемент мог принимать перетаскиваемые данные у него должно быть установлено свойство AllowDrop = true </ul>
  8. 8. Объект DragEventArgs , соответствующий событиям DragEnter, DragOver, DragDrop <ul> <li>public DragDropEffects AllowedEffect { get ; } <li>public ID ataObject Data { get ; } <ul> <li>Object GetData ( string format ) <li>void SetData ( string format , Object data ) <li>bool GetDataPresent ( string format ) </ul> <li>public DragDropEffects Effect { get ; set ; } <li>public int KeyState { get ; } <li>public int X { get ; } <li>public int Y { get ; } </ul>
  9. 9. Проверка наличия перетаскиваемых данных <ul> <li>public bool GetDataPresent ( string format ) <ul> <li>public static class DataFormats <ul> <li>Bitmap <li>Html <li>Riff <li>Rtf <li>... <li>Text <li>UnicodeText <li>... </ul> </ul> </ul>
  10. 10. Определение нажатых клавиш на клавиатуре <ul> <li>public int KeyState { get ; } <ul> <li>1 (бит 0) — левая кнопка мыши <li>2 (бит 1) — правая кнопка мыши <li>4 (бит 2) — клавиша SHIFT <li>8 (бит 3) — клавиша CTRL <li>16 (бит 4) — средняя кнопка мыши <li>32 (бит 5) — клавиша ALT </ul> </ul>
  11. 11. Пример использования обработчика DragEnter <ul> <li>private void textBox2_DragEnter( object sender, DragEventArgs e) { if (e.Data. GetDataPresent ( DataFormats .Text)) { <li>if (((e. KeyState & 8) != 0) && ((e. AllowedEffect & DragDropEffects .Copy)!=0)) e.Effect = DragDropEffects .Copy; else e.Effect = DragDropEffects .Move; } } </ul>
  12. 12. Обработчик события DragDrop <ul> <li>Событие возникает при завершении операции Darg'n'Drop </ul>
  13. 13. Пример использования обработчика DragDrop <ul> <li>private void textBox2_DragDrop( object sender, DragEventArgs e) { if (e.Data. GetDataPresent ( DataFormats .Text)) { textBox2.Text =( string )e.Data. GetData ( DataFormats .Text); if (((e. AllowedEffect & DragDropEffects .Copy) == 0) || ((e. KeyState & 8) == 0)) textBox1.Text = &quot;&quot; ; } } </ul>
  14. 14. Пример работы программы
  15. 15. Начальное окно программы
  16. 16. Перетаскивание текста
  17. 17. Перемещение текста
  18. 18. Копирование текста
  19. 19. Конец Спасибо за внимание e-mail: [email_address] http://monoprogramming.blogspot.com http://www.slideshare.net/albova

×