Славься!
Мне трудно понять, почему мое древовидное представление (или любой другой компонент, даже сама форма) не вызовет событие DragDrop.
Я установил свою форму следующим образом:
A Форма с панелью внутри.
Панель имеет TreeView и этот TreeView( MyTree ) имеет следующий код:
MyTree.AllowDrop = true;
MyTree.DragDrop += new System.Windows.Forms.DragEventHandler(onDragDrop);
MyTree.DragEnter += new System.Windows.Forms.DragEventHandler(onDragEnter);
MyTree.DragLeave += new System.EventHandler(onDragLeave);
MyTree.DragOver += new System.Windows.Forms.DragEventHandler(onDragOver);
Обработчики выглядят так:
private void onDragEnter(object sender, DragEventArgs e)
{
Console.WriteLine(" === DragEnter === ");
}
private void onDragLeave(object sender, EventArgs e)
{
Console.WriteLine(" === DragLeave === ");
}
private void onDragOver(object sender, DragEventArgs e)
{
Console.WriteLine(" === DragOver === ");
}
private void onDragDrop(object sender, DragEventArgs e)
{
Console.WriteLine(" === DragDrop === ");
}
Когда я тестирую свое приложение, перетаскивая файл * .txt(или что-нибудь) вывод выглядит примерно так:
=== DragEnter ===
=== DragOver ===
=== DragOver ===
...
=== DragOver ===
=== DragLeave ===
Последняя строка (=== DragLeave ===) не должна была быть событием отпуска.
Фактически, эта строкапечатается, когда я отпускаю кнопку мыши на TreeView.
Я что-то делаю ужасно неправильно?