/// <summary> /// Raises the DropFiles event. /// </summary> /// <param name="e">A DropFileEventArgs that contains event data.</param> protected virtual void OnDropFiles(DropFileEventArgs e) { if (DropFiles != null) DropFiles(this, e); if (e.Cancel) return; int index = e.Index; int firstItemIndex = 0; mSelectedItems.Clear(false); // Add items bool first = true; foreach (string filename in e.FileNames) { ImageListViewItem item = new ImageListViewItem(filename); if (first || MultiSelect) { item.mSelected = true; first = false; } bool inserted = mItems.InsertInternal(index, item, defaultAdaptor); if (firstItemIndex == 0) firstItemIndex = item.Index; if (inserted) index++; } EnsureVisible(firstItemIndex); OnSelectionChangedInternal(); }
private void imageListView1_DropFiles(object sender, DropFileEventArgs e) { if (treeView1.SelectedNode.GetType().Name == "NodeCategory") { NodeCategory nCat = (NodeCategory)treeView1.SelectedNode; if (nCat.IsLeaf() == false) { MessageBox.Show("You can't drop on a category with child "); e.Cancel = true; return; } FChoosePhotographer choosePhotographer = new FChoosePhotographer(nodephotographer); if (choosePhotographer.ShowDialog() == System.Windows.Forms.DialogResult.OK) { FilenamePhotoProvider fpp = new FilenamePhotoProvider(choosePhotographer.Photographe); ImageListView.ImageListViewSelectedItemCollection selected = imageListView1.SelectedItems; String DirectoryDst = nCat.getDirectory(); List<string> Lfile = fpp.getPossibleFilename(DirectoryDst, e.FileNames.Length); string[] fileDst = new String[Lfile.Count]; int n = 0; foreach (String s in Lfile) { fileDst[n] = s; n++; } this.Cursor = Cursors.WaitCursor; ShellFileOperation sfo = new ShellFileOperation(); sfo.Operation = ShellFileOperation.FileOperations.FO_COPY; sfo.OwnerWindow = this.Handle; sfo.SourceFiles = e.FileNames; sfo.DestFiles =fileDst; sfo.ProgressTitle = "Import..."; sfo.DoOperation(); toolStripProgressBarThumb.Visible = true; toolStripProgressBarThumb.Minimum = 0; toolStripProgressBarThumb.Maximum = sfo.DestFiles.Length; ThumbMaker tm = new ThumbMaker(); tm.processFiles(sfo.DestFiles, DirectoryDst + "\\miniatures\\", delegate(int f, string m) { if (f == -1) { toolStripStatusLabel1.Text = m; } else { toolStripStatusLabel1.Text = " Processing thumbnail File " + f.ToString(); toolStripProgressBarThumb.Value = f; if (toolStripProgressBarThumb.Maximum-1 == f) { tabControl1.SelectedIndex = 0; try { PopulateListView(new DirectoryInfo(nCat.getDirectory())); } catch (Exception exp) { MessageBox.Show("Error in category " + exp.Message); } FillGuiCategory(nCat); //TreeNode node = (TreeNode)nodeCategory; //ExpandNode(nodeCategory, node); //nodeCategory.Expand(); } } }); this.Cursor = Cursors.Arrow; toolStripProgressBarThumb.Visible = false; } else { MessageBox.Show("Error Happen in the wizard configuration please try again "); } } e.Cancel = true; }