在这个例子中:
我在问隐藏文件路径...
这是我的代码:
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);
}
}
答案 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