У меня есть приложение WinForms, которое отображает файлы внутри какой-либо папки в списке (скажем, D: \ work). Мне нужно добавить свойство drag-n-drop в мое приложение, чтобы я мог перетащить некоторые файлы и удалить их на своем рабочем столе.Минимизируйте мою форму окна при перетаскивании файла, чтобы удалить его на рабочий стол
Так мне удалось сделать это, но я хочу, чтобы моя форма, чтобы свести к минимуму или лучше, отправляется обратно (если есть открытое окно, чтобы уронить файл в нем
Мой listBox_mouseDown:.
private void listBox_MouseDown(object sender, MouseEventArgs e)
{
ListBox listBox = (ListBox)sender;
int index = listBox.IndexFromPoint(e.Location);
if (index >= 0)
{
Item selItem = (Item)listBox.Items[index];
if (selItem != null)
{
if (e.Button == MouseButtons.Left)
{
clickPoint = Cursor.Position;
string[] filesToDrag = { selItem.path };
listBox.DoDragDrop(new DataObject(DataFormats.FileDrop, filesToDrag), DragDropEffects.Copy);// Here I want the window to minimize
diff.X = Math.Abs(clickPoint.X - Cursor.Position.X);
diff.Y = Math.Abs(clickPoint.Y - Cursor.Position.Y);
if (diff.X < 20 && diff.Y < 20)
listBox_MouseClick(sender, e);
}
else
{
if (e.Button == MouseButtons.Right)
{
selItem = (Item)listBox.Items[listBox.IndexFromPoint(e.X, e.Y)];
if (selItem.isFile() && !listBoxFavorites.Items.Contains(selItem))
listBoxFavorites.Items.Add(selItem);
}
}
}
}
}
listBox_DragOver:
private void listBox_DragOver(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Copy;
}
заранее спасибо :)
Что вы имеете в виду «если есть открытое окно, чтобы бросить свой файл»? – GuidoG
Сведение к минимуму вашего собственного окна не так много. Существующий UX для drag + drop предназначен для наведения указателя перетаскивания на кнопку панели задач или ссылку «показать рабочий стол» на панели задач. Попробуй. –