Во-первых, содержание управления на другие элементы управления
В процессе развития, часто имеют такое требование, данные элемент управления сопротивлением для управления другим. Например, в котором ListBox данных на другой в ListBox. Или перетащить DataGridView данные на узел в TreeView.
В заявке, путем обработки серии событий, таких как DragEnter, DragLeave и события DragDrop для реализации перетаскивания в операциях приложений Windows. Используя имеющуюся информацию об этих параметрах событий, вы можете легко перетаскивать.
Операции перетаскивания в коде через три этапа, во-первых, чтобы начать операцию перетаскивания для достижения ответного кода события MouseDown на контроле и перетащить данные, необходимые, и вызывает метод DoDragDrop (); а затем перетащить эффекты в мишени Добавить DragEnter код ответа событий и т.п., используя DragDropEffects перечисляемого типа копирования или перемещения перетаскивания эффект на управление, последняя операция заключается в размещении данных, добавьте DragDrop контрольный код ответа на цель, чтобы добавить данные к цели управления.
частная пустота Form1_Load ( объект отправителя, System.EventArgs е) { это .listBox1.AllowDrop = верно ; это .listBox2.AllowDrop = верно ; это .listBox1.Items.Add ( " " ); это .listBox1.Items.Add ( " б " ); это .listBox1.Items.Add ( " C " ); } Частная пустота listBox1_MouseDown ( объект отправителя, System.Windows.Forms.MouseEventArgs е) { это .listBox1.DoDragDrop ( это .listBox1.Items [ это .listBox1.SelectedIndex], DragDropEffects.Move); } Частная пустота listBox2_DragEnter ( объект отправителя, System.Windows.Forms.DragEventArgs е) { если (e.Data.GetDataPresent (DataFormats.Text)) { e.Effect = DragDropEffects.Move; } } Частный недействительным listBox2_DragDrop ( объект отправителя, System.Windows.Forms.DragEventArgs е) { это .listBox2.Items.Add (e.Data.GetData (DataFormats.Text)); это.listBox1.Items.Remove (e.Data.GetData (DataFormats.Text)); }
Во-вторых, перетащите файл для управления доступом к документам пути
Перетащите файл или каталог в вашу программу, что пользовательский опыт хорош.
Получить тащили по пути кода: (System.Array) e.Data.GetData (DataFormats.FileDrop).
Затем вы можете скопировать и вставить эти пути.
общественный частичный класс Form1: Form { общественного Form1 () { InitializeComponent (); } Частная пустота Form1_Load ( объект отправителя, EventArgs е) { SetCtrlDrag.SetCtrlDragEvent ( это .textBox1); } } Общественного класс SetCtrlDrag { общественной статическая пустота SetCtrlDragEvent (контроль Ctrl) { если (Ctrl является TextBox) { TextBox , Т.Б. = Ctrl , какTextBox; tb.AllowDrop = истина ; tb.DragEnter + = (Sender, E) => { e.Effect = DragDropEffects.Link; // значок перетаскивания };
tb.DragDrop + = (отправитель, е) => { ((TextBox) отправитель) .Text = ((System.Array) e.Data.GetData (DataFormats.FileDrop)) ПолучитьЗначение (. 0 ) .ToString (); }; } } }
эффекты интерфейса
В-третьих, инструкции
MSDN: http://msdn.microsoft.com/zh-cn/library/system.windows.forms.dragdropeffects.aspx
1. метод
Когда перетаскивание эффектов, C # обеспечивает систематический метод DoDragDrop метод для реализации перетаскивания операция началась, которая определяется классом управления, прямо или косвенно, так как элементы управления является производным от класса Control, разработчик может в любом метод вызывает DoDragDrop визуализации компонент. Метод DoDragDrop использует следующий синтаксис:
общественный DragDropEffects DoDragDrop (данные объекта, DragDropEffects allowedEffects)
данные: пользователю перетаскивать содержимое данных. Для того, чтобы тащиться содержание должно быть передано в первый аргумент этой позиции методы.
allowedEffects: Один DragDropEffects перечисленного значений, эффект этого типа включает в себя операцию перетаскивания. значения перечисления DragDropEffects приведены в таблице 32.8.
DragDropEffects лист 举 值:
- Все: Копирование из источника перетаскивания, данные удаляются, и выделите цель перетаскивания
- Копирование: копирование данных в цель перетаскивания
- Ссылка: перетаскивание связать источник данных с целью снижения
- Перемещение: перетащить мобильный источник данных к цели падения
- Ни одно: цель перетаскивания не принимает данные
- Свиток: о, чтобы начать прокатки в цели перетаскивания, или в настоящее время прокатки
При использовании метода разработчика DoDragDrop, необходимо задать параметры allowedEffects любого члена таблицы. Кроме того, могут быть использованы Битовые операторы, где любой один из элемента в виде полного набора параметров, переданных, чтобы дать желаемый эффект перетаскивания для достижения ключевого кода выглядит следующим образом:
DragDropEffects.Copy | DragDropEffects.None
2. событие
C # обеспечивает перетаскивание системы событий, используется в сочетании с сопротивлением и капельным методом для достижения лучших результатов. Обычные события перетаскивания, как показано в таблице.
Событие на цели:
- DragEnter: Когда пользователи перетаскивать операцию в первый раз во время курсора мыши на элементы управления, приведет событие
- DragOver: Если мышь движется, но остается в пределах того же элемента управления, событие запуска DragOver
- DragDrop: происходит, когда операция перетаскивания завершена
- DragLeave: Если пользователь выходит из окна, событие вызвало DragLeave
Событие на источник:
- GiveFeedback: Происходит во время операции перетаскивания
- QueryContinueDrag: Во время операции перетаскивания, когда изменяется состояние кнопки клавиатуры или мыши приведет к QueryContinueDrag событию. QueryContinueDrag событие позволяет источник перетаскивания определить, следует ли отменить операцию перетаскивания