/// <summary> /// 本地浏览器右键菜单“资源管理器菜单”条目事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void LocalPopupMenuDefault_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { ShellContextMenu scm = new ShellContextMenu(); FileInfo[] files = new FileInfo[1]; Point p = this.ListViewLocal.PointToClient(new Point(menutrippoint.X, menutrippoint.Y)); files[0] = new FileInfo(LocalPath + ListViewLocal.GetItemAt(p.X, p.Y).Text); scm.ShowContextMenu(files, menutrippoint); }
/// <summary> /// 本地浏览器弹出右键菜单并判断显示可用菜单条目 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ListViewLocal_MouseUp(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) { Point p = this.ListViewLocal.PointToClient(new Point(Cursor.Position.X, Cursor.Position.Y)); LocalPopupMenuCopy.Enabled = true; LocalPopupMenuDefault.Enabled = true; LocalPopupMenuDel.Enabled = true; LocalPopupMenuNewFile.Enabled = true; LocalPopupMenuNewFolder.Enabled = true; LocalPopupMenuOpen.Enabled = true; LocalPopupMenuProperty.Enabled = true; LocalPopupMenuRefresh.Enabled = true; LocalPopupMenuRename.Enabled = true; LocalPopupMenuStick.Enabled = false; LocalPopupMenuTrans.Enabled = true; //判断是否有选中条目或者选中条目是否为“上级目录” if (ListViewLocal.GetItemAt(p.X, p.Y) != null && ListViewLocal.GetItemAt(p.X, p.Y).SubItems.Count > 1) { //判断选中的条目是否是文件夹,选中条目为文件夹禁止传输 if (ListViewLocal.GetItemAt(p.X, p.Y).SubItems[1].Text.Equals(" ") || IfLogin == false) { LocalPopupMenuTrans.Enabled = false; } } else { LocalPopupMenuCopy.Enabled = false; LocalPopupMenuDefault.Enabled = false; LocalPopupMenuDel.Enabled = false; LocalPopupMenuOpen.Enabled = false; LocalPopupMenuProperty.Enabled = false; LocalPopupMenuRename.Enabled = false; LocalPopupMenuTrans.Enabled = false; } //判断是否进行了“复制”的操作 if (localcopyoldurl.Length > 0) { LocalPopupMenuStick.Enabled = true; } //弹出右键菜单并记录弹出坐标 p = new Point(Cursor.Position.X, Cursor.Position.Y); PopupMenuLocal.ShowPopup(p); menutrippoint = p; } }
/// <summary> /// 本地浏览器右键菜单“属性”条目事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void LocalPopupMenuProperty_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { const string discVerb = "属性(&R)"; Point p = this.ListViewLocal.PointToClient(new Point(menutrippoint.X, menutrippoint.Y)); string sourceFile = LocalPath + ListViewLocal.GetItemAt(p.X, p.Y).Text; FileInfo file = new FileInfo(sourceFile); Shell32.Shell shell = new Shell32.Shell(); Shell32.Folder folder = shell.NameSpace(file.DirectoryName); Shell32.FolderItem folderItem = folder.ParseName(file.Name); foreach (Shell32.FolderItemVerb Fib in folderItem.Verbs()) { if (Fib.Name == discVerb) { Fib.DoIt(); break; } } }
/// <summary> /// 本地浏览器右键菜单“重命名”条目事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void LocalPopupMenuRename_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { UpYunNewFolder newfolder = new UpYunNewFolder(); newfolder.Owner = this; newfolder.Path = LocalPath; Point p = this.ListViewLocal.PointToClient(new Point(menutrippoint.X, menutrippoint.Y)); if (ListViewLocal.GetItemAt(p.X, p.Y).SubItems[1].Text.Equals(" ")) { newfolder.newstatus = "renamefolder"; } else { newfolder.newstatus = "renamefile"; } newfolder.oldname = ListViewLocal.GetItemAt(p.X, p.Y).Text; newfolder.ShowDialog(); LocalUrlTextChanged(); }