using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; namespace Cyberpipe { public partial class FrmFolderSelecter : DevComponents.DotNetBar.Office2007Form { public string SelectedPath = ""; public FrmFolderSelecter() { InitializeComponent(); } /// <summary> /// 窗体初始化事件处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void FrmFolderSelecter_Load(object sender, EventArgs e) { string rootPath = Application.StartupPath; textBoxXSelectedPath.Text = rootPath; setListViewItems(rootPath); } /// <summary> /// 上一级按钮事件处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void buttonXPrevious_Click(object sender, EventArgs e) { string currentPath = textBoxXSelectedPath.Text.Trim(); if (currentPath == Application.StartupPath) { return; } textBoxXSelectedPath.Text = Directory.GetParent(currentPath).FullName; setListViewItems(textBoxXSelectedPath.Text.Trim()); } /// <summary> /// 确定按钮事件处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void buttonXOK_Click(object sender, EventArgs e) { if (listViewExDirectories.SelectedItems.Count <= 0) { MessageBox.Show("请选中一个文件夹","提示"); return; } SelectedPath = textBoxXSelectedPath.Text.Trim() + "\\" + listViewExDirectories.SelectedItems[0].Text.Trim(); this.DialogResult = DialogResult.OK; } /// <summary> /// 列表项双击事件处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void listViewExDirectories_MouseDoubleClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { ListViewHitTestInfo info = listViewExDirectories.HitTest(e.Location); if (info.Item != null) { string mouseDoubleClickName = info.Item.Text.Trim(); textBoxXSelectedPath.Text += "\\" + mouseDoubleClickName; setListViewItems(textBoxXSelectedPath.Text.Trim()); } } } /// <summary> /// 重置列表框中的所有项 /// </summary> /// <param name="directoryPath"></param> private void setListViewItems(string directoryPath) { string[] dirctoriesPath = Directory.GetDirectories(directoryPath); listViewExDirectories.Clear(); foreach (string dir in dirctoriesPath) { string dirctoryInfoName = dir.Substring(dir.LastIndexOf("\\") + 1); listViewExDirectories.Items.Add(dirctoryInfoName); } } } }