Treeview,Listview和Datagridview:隐藏文件路径

时间:2016-08-19 07:32:58

标签: c# listview gridview treeview

在这个例子中:

  1. 图片选择
  2. 选择文件夹(显示Treeview)
  3. 选择excelfile(显示Listview)
  4. 在Listview excelfile中选择
  5. 点击并在Gridview中显示我的Excel文件。
  6. enter image description here

    我在问隐藏文件路径...

    这是我的代码:

    namespace WindowsFormsApplication5
    {
        public partial class Form1 : Form
        {
            private object datagridview;
    
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                string[] ids = Directory .GetLogicalDrives();
                foreach (string id in ids)
                {
                    treeView1.Nodes.Add(id);
    
                }
            }
    
            private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
            {
                listView1.Clear();
    
                string[] dirs = Directory.GetDirectories(treeView1.SelectedNode.Text);
                foreach(string dir in dirs)
    
                {
                    listView1.Items.Add(dir, 0);
                    treeView1.SelectedNode.Nodes.Add(dir);
    
                }
            }
    

1 个答案:

答案 0 :(得分:0)

我的韩语比你的英语差很多,但我会尽力帮助。

我不得不猜测你要做什么,但我认为你想要的是在DataGridView中显示一个excel文件,但双击listView中的文件?

首先,您需要将Excel文件添加到列表视图中。

我通过将treeView1_AfterSelect更改为:

来完成此操作
        listView1.Clear();

        string[] dirs = Directory.GetDirectories(treeView1.SelectedNode.Text);
        string[] files = Directory.GetFiles(treeView1.SelectedNode.Text, "*.xls*");
        foreach (string dir in dirs)

        {
            listView1.Items.Add(dir, 0);
            treeView1.SelectedNode.Nodes.Add(dir);
        }
        foreach (string file in files)

        {
            listView1.Items.Add(file, 0);
        }

请注意添加GetFiles。

然后我将DoubleClick事件添加到ListView:

    private void listView1_DoubleClick(object sender, EventArgs e)
    {
        string fileName = listView1.SelectedItems[0].Text;
        if (fileName.Contains(".xl"))
        {
            string constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
                            fileName +
                            ";Extended Properties='Excel 12.0;HDR=YES;';";

            OleDbConnection con = new OleDbConnection(constr);
            OleDbCommand oconn = new OleDbCommand("Select * From [Sheet1$]", con);
            con.Open();

            OleDbDataAdapter sda = new OleDbDataAdapter(oconn);
            DataTable data = new DataTable();
            sda.Fill(data);
            dataGridView1.DataSource = data;
        }
    }

为此,您需要拥有正确的ACE.OLEDB提供程序。由于某种原因我无法解释,虽然我的系统是64位且我有Office 64 Bit,但我需要安装32位Access运行时,才能使其正常工作。我在这里给出了链接:https://www.microsoft.com/en-US/download/details.aspx?id=13255