Newer
Older
GHFX_REFACTOR / FrmFolderSelecter.cs
wxn on 2 Nov 2016 3 KB 提交
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);
            }
        }
    }
}