【发布时间】:2015-11-03 17:25:16
【问题描述】:
我有一个库类项目,用户控件上有一个用户控件我有像 Windows 资源管理器这样的资源管理器我可以选择一个目录并右键单击我有 ContextMenuStrip 菜单和编辑粘贴复制上传...
当我点击上传时,我需要从项目(目录)中获取,我点击了所有目录子目录和所有文件。我试着这样做:
private void menuStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
if (e.ClickedItem.Text == "Upload")
{
AllFiles = System.IO.Directory.GetFiles(e.ClickedItem.Text, "*.*", System.IO.SearchOption.AllDirectories);
Bgw.RunWorkerAsync();
}
}
但是e.ClickedItem.Text不是我选择的目录而是“上传”菜单文本。
我需要的是 AllFiles(String[]) 将包含所有子目录和所有文件,以便我稍后可以在 form1 上使用它。 一般来说,在 form1 中,我想将整个选定目录以及所有子目录和文件上传到我的 ftp。
我只需要找到如何获得这一切。
我正在使用右键单击来选择目录treeView。 这是 Mouse Up 事件:
void treeView1_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
treeView1.SelectedNode = treeView1.GetNodeAt(e.X, e.Y);
if (treeView1.SelectedNode != null)
{
menuStrip.Show(treeView1, e.Location);
}
}
}
以及 After Select 事件:
void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
AddDirectories(e.Node);
AddFiles(e.Node.FullPath.ToString());
statusBar1.Text = iDirectories.ToString() + " Folder(s) " + iFiles.ToString() + " File(s)";
}
【问题讨论】:
-
您的“像 Windows 资源管理器一样的资源管理器”使用什么控件/组件类型?换句话说,您右键单击的控件/组件类型是什么?
-
@JasonFaulkner,我认为创建自己的控件...无论如何,以“通用”方式,独立于控件类型,他可以按照我在回答中的建议进行操作。
-
对,我忘了提到控件,它是 treeView Mouse Up 事件和 After Select 事件。
-
我现在发现:treeView1.SelectedNode.FullPath;给我选择的目录名称。