C#问题,高手来看下!我是在是不会啊! 在windows资源管理器中比如说我的电脑下的C,D,E,F盘程序刚运行时在listview中会显示这四个盘,而当我点了盘之后出现了盘中的文件,当我又点击我的电脑时回不到原来状态,也就是显示不到这几个盘的状态,怎么解决啊!我是菜鸟,请高手指点下! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 写一个独立函数绑定listview 先绑定文件夹 可以包括其名称 大小等 然后是文件 参数为路径字符串 ItemActivate激发该绑定函数 实参为路径跟人感觉是这样 不知道你是怎么写的 只是凭理解回答 数据绑定还没学啊!现在就学了单纯的treeview和listview! 这是我的代码!帮忙看下应该怎么加!using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.IO;using System.Runtime.InteropServices;namespace 练习{ public partial class Form1 : Form { public Form1() { //将图标加到ImageList中。 InitializeComponent(); Icon ic0 = Tools.myExtractIcon(treeView1.Handle, "%SystemRoot%\\system32\\shell32.dll", 15); treeImagelist.Images.Add(ic0); imageList1.Images.Add(ic0); Icon ic1 = Tools.myExtractIcon(treeView1.Handle, "%SystemRoot%\\system32\\shell32.dll", 7); treeImagelist.Images.Add(ic1); Icon ic2 = Tools.myExtractIcon(treeView1.Handle, "%SystemRoot%\\system32\\shell32.dll", 4); treeImagelist.Images.Add(ic2); } string spath = "";//定义全局变量 private void InitLizeListView() { int width = listView1.Width / 3;//将listview中的区域分为3块部分。 listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);//根据指定的内容调整区域的大小。 listView1.Columns.Add("文件名", width, HorizontalAlignment.Center); listView1.Columns.Add("大小", width, HorizontalAlignment.Center); listView1.Columns.Add("创建日期", width, HorizontalAlignment.Center); listView1.LargeImageList =imageList1; ///遍历所有的驱动器。 DriveInfo[] dis = DriveInfo.GetDrives(); foreach (DriveInfo di in dis) { if (di.IsReady) { ListViewItem item = new ListViewItem(new string[] { di.Name, (di.TotalSize / 1024 / 1024 / 1024).ToString() + "G" }, 0); listView1.Items.Add(item); } } } private void Form1_Load(object sender, EventArgs e) { treeView1.BeginUpdate(); treeView1.Nodes.Clear(); TreeNode p = new TreeNode("我的电脑",0,0);//实例化一个根结点 p.Name = "我的电脑"; treeView1.Nodes.Add(p);//添加根结点 ///遍历所有根结点下的所有驱动器 DriveInfo[] di = DriveInfo.GetDrives(); foreach (DriveInfo dm in di) { if (dm.IsReady)//判断驱动器是否准备好。 { TreeNode TN = new TreeNode(dm.Name, 1, 1); p.Nodes.Add(TN);//添加在根结点下的节点 } } treeView1.ExpandAll();//展开所有树的的节点 treeView1.EndUpdate();//启用对数的重绘。 InitLizeListView(); } private void GetDriveInfo(TreeNode node, string path) { ///遍历所有驱动器下的子目录。 DirectoryInfo dti = new DirectoryInfo(path); DirectoryInfo[] dtis = dti.GetDirectories(); foreach (DirectoryInfo mydti in dtis) { TreeNode tn = new TreeNode(mydti.Name,2,2); tn.Name = mydti.Name; if (!node.Nodes.ContainsKey(tn.Name))//判断节点中是否存在要添加的节点。 { node.Nodes.Add(tn);//添加所有驱动器下的子目录。 tn.EnsureVisible();//确保数节点可见,并在必要时展开树节点和滚动树视图。 } } } private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { try { if (e.Node.Name != "我的电脑") { GetDriveInfo(e.Node, e.Node.FullPath.Substring(5)); GetInfo(e.Node.FullPath.Substring(5)); spath = e.Node.FullPath.Substring(5); } } catch { MessageBox.Show("你的操作有错误!", "错误", MessageBoxButtons.OKCancel, MessageBoxIcon.Hand); } } private void 缩略图ToolStripMenuItem_Click(object sender, EventArgs e) { listView1.View = View.LargeIcon; } private void 平铺ToolStripMenuItem_Click(object sender, EventArgs e) { listView1.View = View.List; } private void 图标ToolStripMenuItem_Click(object sender, EventArgs e) { listView1.View = View.Tile; } private void 列表ToolStripMenuItem_Click(object sender, EventArgs e) { listView1.View = View.SmallIcon; } private void 列表ToolStripMenuItem_Click_1(object sender, EventArgs e) { listView1.View = View.Details; } private void listView1_ItemActivate(object sender, EventArgs e)//点击listview中的选项而引发的事件。 { try { string str = Path.Combine(spath, listView1.FocusedItem.Text); spath += "\\" + listView1.FocusedItem.Text; GetInfo(str); } catch { MessageBox.Show("不是文件夹,不能打开!","错误",MessageBoxButtons.OKCancel,MessageBoxIcon.Hand); } finally { } } private void GetInfo(string path) { Tools.ListViewSysImages(listView1); DirectoryInfo dti = new DirectoryInfo(path); DirectoryInfo[] dtis = dti.GetDirectories(); FileInfo[] fis = dti.GetFiles(); listView1.Items.Clear(); foreach (DirectoryInfo mydti in dtis) { listView1.Items.Add(mydti.Name, Tools.FileIconIndex(mydti.FullName)); } foreach (FileInfo fi in fis) { listView1.Items.Add(fi.Name, Tools.FileIconIndex(fi.FullName)); } } 这是我的代码应该怎么加啊!using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.IO;using System.Runtime.InteropServices;namespace 练习{ public partial class Form1 : Form { public Form1() { //将图标加到ImageList中。 InitializeComponent(); Icon ic0 = Tools.myExtractIcon(treeView1.Handle, "%SystemRoot%\\system32\\shell32.dll", 15); treeImagelist.Images.Add(ic0); imageList1.Images.Add(ic0); Icon ic1 = Tools.myExtractIcon(treeView1.Handle, "%SystemRoot%\\system32\\shell32.dll", 7); treeImagelist.Images.Add(ic1); Icon ic2 = Tools.myExtractIcon(treeView1.Handle, "%SystemRoot%\\system32\\shell32.dll", 4); treeImagelist.Images.Add(ic2); } string spath = "";//定义全局变量 private void InitLizeListView() { int width = listView1.Width / 3;//将listview中的区域分为3块部分。 listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);//根据指定的内容调整区域的大小。 listView1.Columns.Add("文件名", width, HorizontalAlignment.Center); listView1.Columns.Add("大小", width, HorizontalAlignment.Center); listView1.Columns.Add("创建日期", width, HorizontalAlignment.Center); listView1.LargeImageList =imageList1; ///遍历所有的驱动器。 DriveInfo[] dis = DriveInfo.GetDrives(); foreach (DriveInfo di in dis) { if (di.IsReady) { ListViewItem item = new ListViewItem(new string[] { di.Name, (di.TotalSize / 1024 / 1024 / 1024).ToString() + "G" }, 0); listView1.Items.Add(item); } } } private void Form1_Load(object sender, EventArgs e) { treeView1.BeginUpdate(); treeView1.Nodes.Clear(); TreeNode p = new TreeNode("我的电脑",0,0);//实例化一个根结点 p.Name = "我的电脑"; treeView1.Nodes.Add(p);//添加根结点 ///遍历所有根结点下的所有驱动器 DriveInfo[] di = DriveInfo.GetDrives(); foreach (DriveInfo dm in di) { if (dm.IsReady)//判断驱动器是否准备好。 { TreeNode TN = new TreeNode(dm.Name, 1, 1); p.Nodes.Add(TN);//添加在根结点下的节点 } } treeView1.ExpandAll();//展开所有树的的节点 treeView1.EndUpdate();//启用对数的重绘。 InitLizeListView(); } private void GetDriveInfo(TreeNode node, string path) { ///遍历所有驱动器下的子目录。 DirectoryInfo dti = new DirectoryInfo(path); DirectoryInfo[] dtis = dti.GetDirectories(); foreach (DirectoryInfo mydti in dtis) { TreeNode tn = new TreeNode(mydti.Name,2,2); tn.Name = mydti.Name; if (!node.Nodes.ContainsKey(tn.Name))//判断节点中是否存在要添加的节点。 { node.Nodes.Add(tn);//添加所有驱动器下的子目录。 tn.EnsureVisible();//确保数节点可见,并在必要时展开树节点和滚动树视图。 } } } private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { try { if (e.Node.Name != "我的电脑") { GetDriveInfo(e.Node, e.Node.FullPath.Substring(5)); GetInfo(e.Node.FullPath.Substring(5)); spath = e.Node.FullPath.Substring(5); } } catch { MessageBox.Show("你的操作有错误!", "错误", MessageBoxButtons.OKCancel, MessageBoxIcon.Hand); } } private void 缩略图ToolStripMenuItem_Click(object sender, EventArgs e) { listView1.View = View.LargeIcon; } private void 平铺ToolStripMenuItem_Click(object sender, EventArgs e) { listView1.View = View.List; } private void 图标ToolStripMenuItem_Click(object sender, EventArgs e) { listView1.View = View.Tile; } private void 列表ToolStripMenuItem_Click(object sender, EventArgs e) { listView1.View = View.SmallIcon; } private void 列表ToolStripMenuItem_Click_1(object sender, EventArgs e) { listView1.View = View.Details; } private void listView1_ItemActivate(object sender, EventArgs e)//点击listview中的选项而引发的事件。 { try { string str = Path.Combine(spath, listView1.FocusedItem.Text); spath += "\\" + listView1.FocusedItem.Text; GetInfo(str); } catch { MessageBox.Show("不是文件夹,不能打开!","错误",MessageBoxButtons.OKCancel,MessageBoxIcon.Hand); } finally { } } private void GetInfo(string path) { Tools.ListViewSysImages(listView1); DirectoryInfo dti = new DirectoryInfo(path); DirectoryInfo[] dtis = dti.GetDirectories(); FileInfo[] fis = dti.GetFiles(); listView1.Items.Clear(); foreach (DirectoryInfo mydti in dtis) { listView1.Items.Add(mydti.Name, Tools.FileIconIndex(mydti.FullName)); } foreach (FileInfo fi in fis) { listView1.Items.Add(fi.Name, Tools.FileIconIndex(fi.FullName)); } } HttpWebRequest登陆开心网 连接不上远程SQL2005,真是欲哭无泪啊!! 如何获取硬盘的总大小,不是剩余空间 C#中怎么无法将数据库表中的int类型转化成double呢 谁能提供ado.net 2.0编写的sqlhelper 谢谢 为啥不能再添加空行呢? 窗体最小化时,如何铺获窗体的键盘按下事件 寻一本学asp.net的很精典的编程书 错误处理一问。 treeNode的问题? 关于C#发邮件的一个奇怪问题. 请问pdf(FOR .NET)的组件哪个比较好用,要直接在服务器生成PDF文件的那种?
跟人感觉是这样 不知道你是怎么写的 只是凭理解回答
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Runtime.InteropServices;
namespace 练习
{
public partial class Form1 : Form
{
public Form1()
{
//将图标加到ImageList中。
InitializeComponent();
Icon ic0 = Tools.myExtractIcon(treeView1.Handle, "%SystemRoot%\\system32\\shell32.dll", 15);
treeImagelist.Images.Add(ic0);
imageList1.Images.Add(ic0);
Icon ic1 = Tools.myExtractIcon(treeView1.Handle, "%SystemRoot%\\system32\\shell32.dll", 7);
treeImagelist.Images.Add(ic1);
Icon ic2 = Tools.myExtractIcon(treeView1.Handle, "%SystemRoot%\\system32\\shell32.dll", 4);
treeImagelist.Images.Add(ic2);
}
string spath = "";//定义全局变量
private void InitLizeListView()
{
int width = listView1.Width / 3;//将listview中的区域分为3块部分。
listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);//根据指定的内容调整区域的大小。
listView1.Columns.Add("文件名", width, HorizontalAlignment.Center);
listView1.Columns.Add("大小", width, HorizontalAlignment.Center);
listView1.Columns.Add("创建日期", width, HorizontalAlignment.Center);
listView1.LargeImageList =imageList1;
///遍历所有的驱动器。
DriveInfo[] dis = DriveInfo.GetDrives();
foreach (DriveInfo di in dis)
{
if (di.IsReady)
{ ListViewItem item = new ListViewItem(new string[] { di.Name, (di.TotalSize / 1024 / 1024 / 1024).ToString() + "G" }, 0);
listView1.Items.Add(item);
}
}
}
private void Form1_Load(object sender, EventArgs e)
{
treeView1.BeginUpdate();
treeView1.Nodes.Clear();
TreeNode p = new TreeNode("我的电脑",0,0);//实例化一个根结点
p.Name = "我的电脑";
treeView1.Nodes.Add(p);//添加根结点
///遍历所有根结点下的所有驱动器
DriveInfo[] di = DriveInfo.GetDrives();
foreach (DriveInfo dm in di)
{
if (dm.IsReady)//判断驱动器是否准备好。
{
TreeNode TN = new TreeNode(dm.Name, 1, 1);
p.Nodes.Add(TN);//添加在根结点下的节点
}
}
treeView1.ExpandAll();//展开所有树的的节点
treeView1.EndUpdate();//启用对数的重绘。
InitLizeListView();
}
private void GetDriveInfo(TreeNode node, string path)
{
///遍历所有驱动器下的子目录。
DirectoryInfo dti = new DirectoryInfo(path);
DirectoryInfo[] dtis = dti.GetDirectories();
foreach (DirectoryInfo mydti in dtis)
{
TreeNode tn = new TreeNode(mydti.Name,2,2);
tn.Name = mydti.Name;
if (!node.Nodes.ContainsKey(tn.Name))//判断节点中是否存在要添加的节点。
{
node.Nodes.Add(tn);//添加所有驱动器下的子目录。
tn.EnsureVisible();//确保数节点可见,并在必要时展开树节点和滚动树视图。
}
}
} private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
try
{
if (e.Node.Name != "我的电脑")
{ GetDriveInfo(e.Node, e.Node.FullPath.Substring(5));
GetInfo(e.Node.FullPath.Substring(5));
spath = e.Node.FullPath.Substring(5); }
}
catch
{
MessageBox.Show("你的操作有错误!", "错误", MessageBoxButtons.OKCancel, MessageBoxIcon.Hand); } } private void 缩略图ToolStripMenuItem_Click(object sender, EventArgs e)
{
listView1.View = View.LargeIcon;
} private void 平铺ToolStripMenuItem_Click(object sender, EventArgs e)
{
listView1.View = View.List;
} private void 图标ToolStripMenuItem_Click(object sender, EventArgs e)
{
listView1.View = View.Tile;
} private void 列表ToolStripMenuItem_Click(object sender, EventArgs e)
{
listView1.View = View.SmallIcon;
}
private void 列表ToolStripMenuItem_Click_1(object sender, EventArgs e)
{
listView1.View = View.Details;
}
private void listView1_ItemActivate(object sender, EventArgs e)//点击listview中的选项而引发的事件。
{
try
{
string str = Path.Combine(spath, listView1.FocusedItem.Text);
spath += "\\" + listView1.FocusedItem.Text;
GetInfo(str);
}
catch
{
MessageBox.Show("不是文件夹,不能打开!","错误",MessageBoxButtons.OKCancel,MessageBoxIcon.Hand);
}
finally
{
}
} private void GetInfo(string path)
{
Tools.ListViewSysImages(listView1);
DirectoryInfo dti = new DirectoryInfo(path);
DirectoryInfo[] dtis = dti.GetDirectories();
FileInfo[] fis = dti.GetFiles();
listView1.Items.Clear();
foreach (DirectoryInfo mydti in dtis)
{
listView1.Items.Add(mydti.Name, Tools.FileIconIndex(mydti.FullName));
}
foreach (FileInfo fi in fis)
{
listView1.Items.Add(fi.Name, Tools.FileIconIndex(fi.FullName));
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Runtime.InteropServices;
namespace 练习
{
public partial class Form1 : Form
{
public Form1()
{
//将图标加到ImageList中。
InitializeComponent();
Icon ic0 = Tools.myExtractIcon(treeView1.Handle, "%SystemRoot%\\system32\\shell32.dll", 15);
treeImagelist.Images.Add(ic0);
imageList1.Images.Add(ic0);
Icon ic1 = Tools.myExtractIcon(treeView1.Handle, "%SystemRoot%\\system32\\shell32.dll", 7);
treeImagelist.Images.Add(ic1);
Icon ic2 = Tools.myExtractIcon(treeView1.Handle, "%SystemRoot%\\system32\\shell32.dll", 4);
treeImagelist.Images.Add(ic2);
}
string spath = "";//定义全局变量
private void InitLizeListView()
{
int width = listView1.Width / 3;//将listview中的区域分为3块部分。
listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);//根据指定的内容调整区域的大小。
listView1.Columns.Add("文件名", width, HorizontalAlignment.Center);
listView1.Columns.Add("大小", width, HorizontalAlignment.Center);
listView1.Columns.Add("创建日期", width, HorizontalAlignment.Center);
listView1.LargeImageList =imageList1;
///遍历所有的驱动器。
DriveInfo[] dis = DriveInfo.GetDrives();
foreach (DriveInfo di in dis)
{
if (di.IsReady)
{ ListViewItem item = new ListViewItem(new string[] { di.Name, (di.TotalSize / 1024 / 1024 / 1024).ToString() + "G" }, 0);
listView1.Items.Add(item);
}
}
}
private void Form1_Load(object sender, EventArgs e)
{
treeView1.BeginUpdate();
treeView1.Nodes.Clear();
TreeNode p = new TreeNode("我的电脑",0,0);//实例化一个根结点
p.Name = "我的电脑";
treeView1.Nodes.Add(p);//添加根结点
///遍历所有根结点下的所有驱动器
DriveInfo[] di = DriveInfo.GetDrives();
foreach (DriveInfo dm in di)
{
if (dm.IsReady)//判断驱动器是否准备好。
{
TreeNode TN = new TreeNode(dm.Name, 1, 1);
p.Nodes.Add(TN);//添加在根结点下的节点
}
}
treeView1.ExpandAll();//展开所有树的的节点
treeView1.EndUpdate();//启用对数的重绘。
InitLizeListView();
}
private void GetDriveInfo(TreeNode node, string path)
{
///遍历所有驱动器下的子目录。
DirectoryInfo dti = new DirectoryInfo(path);
DirectoryInfo[] dtis = dti.GetDirectories();
foreach (DirectoryInfo mydti in dtis)
{
TreeNode tn = new TreeNode(mydti.Name,2,2);
tn.Name = mydti.Name;
if (!node.Nodes.ContainsKey(tn.Name))//判断节点中是否存在要添加的节点。
{
node.Nodes.Add(tn);//添加所有驱动器下的子目录。
tn.EnsureVisible();//确保数节点可见,并在必要时展开树节点和滚动树视图。
}
}
} private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
try
{
if (e.Node.Name != "我的电脑")
{ GetDriveInfo(e.Node, e.Node.FullPath.Substring(5));
GetInfo(e.Node.FullPath.Substring(5));
spath = e.Node.FullPath.Substring(5); }
}
catch
{
MessageBox.Show("你的操作有错误!", "错误", MessageBoxButtons.OKCancel, MessageBoxIcon.Hand); } } private void 缩略图ToolStripMenuItem_Click(object sender, EventArgs e)
{
listView1.View = View.LargeIcon;
} private void 平铺ToolStripMenuItem_Click(object sender, EventArgs e)
{
listView1.View = View.List;
} private void 图标ToolStripMenuItem_Click(object sender, EventArgs e)
{
listView1.View = View.Tile;
} private void 列表ToolStripMenuItem_Click(object sender, EventArgs e)
{
listView1.View = View.SmallIcon;
}
private void 列表ToolStripMenuItem_Click_1(object sender, EventArgs e)
{
listView1.View = View.Details;
}
private void listView1_ItemActivate(object sender, EventArgs e)//点击listview中的选项而引发的事件。
{
try
{
string str = Path.Combine(spath, listView1.FocusedItem.Text);
spath += "\\" + listView1.FocusedItem.Text;
GetInfo(str);
}
catch
{
MessageBox.Show("不是文件夹,不能打开!","错误",MessageBoxButtons.OKCancel,MessageBoxIcon.Hand);
}
finally
{
}
} private void GetInfo(string path)
{
Tools.ListViewSysImages(listView1);
DirectoryInfo dti = new DirectoryInfo(path);
DirectoryInfo[] dtis = dti.GetDirectories();
FileInfo[] fis = dti.GetFiles();
listView1.Items.Clear();
foreach (DirectoryInfo mydti in dtis)
{
listView1.Items.Add(mydti.Name, Tools.FileIconIndex(mydti.FullName));
}
foreach (FileInfo fi in fis)
{
listView1.Items.Add(fi.Name, Tools.FileIconIndex(fi.FullName));
}
}