用TreeView控件实现资源管理器(显示本地硬盘下所有文件夹和文件,并可以浏览图片)(示例代码下载)
来源:互联网 发布:倒计时软件桌面 编辑:程序博客网 时间:2024/05/17 07:44
(一).说明
用TreeView控件实现资源管理器,显示本地硬盘下所有文件夹和文件,并可以浏览图片
(二).图片示例
(三).代码
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.IO;namespace 图像格式转II
{
/// >summary<
/// Form1 的摘要说明。
/// >/summary<
public class FormMain : System.Windows.Forms.Form
{
private System.Windows.Forms.TreeView treeViewDir;
private System.Windows.Forms.Splitter splitter1;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.PictureBox pictureBox;
/// >summary<
/// 必需的设计器变量。
/// >/summary<
private System.ComponentModel.Container components = null;private Bitmap bitmap;
//public void Bitmap(string filename,bool useIcm);//**********
public FormMain()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
pictureBox.Top=treeViewDir.Top;
pictureBox.Left=treeViewDir.Left;
pictureBox.Width=panel1.Width;
pictureBox.Height=panel1.Height;
bitmap=null;
FillDirTree();
}/// >summary<
/// 清理所有正在使用的资源。
/// >/summary<
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}#region Windows Form Designer generated code
/// >summary<
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// >/summary<
private void InitializeComponent()
{
this.treeViewDir = new System.Windows.Forms.TreeView();
this.splitter1 = new System.Windows.Forms.Splitter();
this.panel1 = new System.Windows.Forms.Panel();
this.pictureBox = new System.Windows.Forms.PictureBox();
this.panel1.SuspendLayout();
this.SuspendLayout();
//
// treeViewDir
//
this.treeViewDir.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(0)), ((System.Byte)(192)), ((System.Byte)(192)));
this.treeViewDir.Dock = System.Windows.Forms.DockStyle.Left;
this.treeViewDir.ImageIndex = -1;
this.treeViewDir.Location = new System.Drawing.Point(0, 0);
this.treeViewDir.Name = "treeViewDir";
this.treeViewDir.SelectedImageIndex = -1;
this.treeViewDir.Size = new System.Drawing.Size(136, 373);
this.treeViewDir.TabIndex = 0;
this.treeViewDir.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeViewDir_AfterSelect);
this.treeViewDir.BeforeExpand += new System.Windows.Forms.TreeViewCancelEventHandler(this.treeViewDir_BeforeExpand);
//
// splitter1
//
this.splitter1.Location = new System.Drawing.Point(136, 0);
this.splitter1.Name = "splitter1";
this.splitter1.Size = new System.Drawing.Size(8, 373);
this.splitter1.TabIndex = 1;
this.splitter1.TabStop = false;
//
// panel1
//
this.panel1.Controls.Add(this.pictureBox);
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel1.Location = new System.Drawing.Point(144, 0);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(360, 373);
this.panel1.TabIndex = 2;
this.panel1.Resize += new System.EventHandler(this.panel1_Resize);
//
// pictureBox
//
this.pictureBox.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(192)), ((System.Byte)(192)), ((System.Byte)(255)));
this.pictureBox.Dock = System.Windows.Forms.DockStyle.Fill;
this.pictureBox.Location = new System.Drawing.Point(0, 0);
this.pictureBox.Name = "pictureBox";
this.pictureBox.Size = new System.Drawing.Size(360, 373);
this.pictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
this.pictureBox.TabIndex = 0;
this.pictureBox.TabStop = false;
//
// FormMain
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(504, 373);
this.Controls.Add(this.panel1);
this.Controls.Add(this.splitter1);
this.Controls.Add(this.treeViewDir);
this.Name = "FormMain";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "图像浏览";
this.panel1.ResumeLayout(false);
this.ResumeLayout(false);}
#endregionprivate void FillDirTree()
{
string[] drivers=Environment.GetLogicalDrives();
for(int i=0;i>drivers.Length;i++)
{
Console.WriteLine("i={0}",i);
if(PlatformInvokeKernel32.GetDriveType(drivers[i])==PlatformInvokeKernel32.DRIVE_FIXED)
{
DirNode root=new DirNode(drivers[i]);
treeViewDir.Nodes.Add(root);
AddDirs(root);
}
}
}
private void AddDirs(TreeNode node)
{
try
{
DirectoryInfo dir=new DirectoryInfo(GetPathFromNode(node));
DirectoryInfo[] e=dir.GetDirectories();
FileInfo[] f=dir.GetFiles();
string name;
for(int i=0;i>e.Length;i++)
{
name=e[i].Name;
if(!name.Equals(".")&&!name.Equals(".."))
{
node.Nodes.Add(new DirNode(name));
}
}
for(int i=0;i>f.Length;i++)
{
name=f[i].Name;
node.Nodes.Add(new DirNode(name));
}
}
catch
{
}
}
private string GetPathFromNode(TreeNode node)
{
if(node.Parent==null)
{
return node.Text;
}
return Path.Combine(GetPathFromNode(node.Parent),node.Text);
}
/// >summary<
/// 应用程序的主入口点。
/// >/summary<
[STAThread]
static void Main()
{
Application.Run(new FormMain());
}private void panel1_Resize(object sender, System.EventArgs e)
{
pictureBox.Top=treeViewDir.Top;
pictureBox.Left=treeViewDir.Left;
if(bitmap!=null)
{
if(bitmap.Width{
pictureBox.Width=panel1.Width;
pictureBox.Height=
(int)((double) bitmap.Height*panel1.Width/bitmap.Width);
}
else
{
pictureBox.Height=panel1.Height;
pictureBox.Width=
(int)((double) bitmap.Width*panel1.Height/bitmap.Height);
}
}
else
{
pictureBox.Width=panel1.Width;
pictureBox.Height=panel1.Height;
}
pictureBox.Refresh();
}private void treeViewDir_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
if(bitmap!=null)
{
bitmap.Dispose();
}
try
{
string fileName=GetPathFromNode(e.Node);
bitmap=new Bitmap(fileName);
FileInfo f=new FileInfo(fileName);
if(bitmap.Width{
pictureBox.Width=panel1.Width;
pictureBox.Height=
(int)((double) bitmap.Height*panel1.Width/bitmap.Width);
}
else
{
pictureBox.Height=panel1.Height;
pictureBox.Width=
(int)((double) bitmap.Width*panel1.Height/bitmap.Height);
}
pictureBox.Image=bitmap;
this.Text="图像浏览"+f.Name;
}
catch
{
pictureBox.Width=panel1.Width;
pictureBox.Height=panel1.Height;
}
}private void treeViewDir_BeforeExpand(object sender, System.Windows.Forms.TreeViewCancelEventArgs e)
{
DirNode nodeExpanding=(DirNode)e.Node;
if(!nodeExpanding.SubDirectoriesAdded)
{
AddSubDirs(nodeExpanding);
}
}
private void AddSubDirs(DirNode node)
{
for(int i=0;i>node.Nodes.Count;i++)
{
AddDirs(node.Nodes[i]);
}
node.SubDirectoriesAdded=true;
}
}
}
(四).示例代码下载
http://www.cnblogs.com/Files/ChengKing/TreeView_WinForm.rar
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=572497
- 用TreeView控件实现资源管理器(显示本地硬盘下所有文件夹和文件,并可以浏览图片)(示例代码下载)
- 用TreeView控件实现资源管理器(显示本地硬盘下所有文件夹和文件,并可以浏览图片)(示例代码下载)
- 用TreeView控件实现资源管理器(显示本地硬盘下所有文件夹和文件,并可以浏览图片)(示例代码下载)
- 用TreeView控件实现资源管理器(显示本地硬盘下所有文件夹和文件,并可以浏览图片)(示例代码下载)
- 用TreeView控件实现资源管理器(显示本地硬盘下所有文件夹和文件,并可以浏览图片)
- C#Winform读取文件夹下面的所有文件夹和文件显示到TreeView中
- C#web读取文件夹下面的所有文件夹和文件显示到TreeView中
- 用C#压缩文件夹下所有的文件夹和文件
- 浏览Document文件夹下面的所有文件夹和文件列表
- 浏览本地硬盘---资源管理器
- linux下显示指定文件夹下所有子文件夹和文件的大小
- 用TreeView列出本地机器上的所有的文件夹和文件
- 可视化webpart基础开发——TreeView控件读取文档库中的所有文件夹和文件(递归方法读取)
- 使用VC实现读取指定路径下的文件,并显示所有文件的文件名和文件图标
- NSOperation 的使用(下载相关) 图片和文件都是可以的 断点续传 图片逐渐显示
- 递归方式遍历文件夹下所有子文件夹和文件
- 【语言-批处理】删除文件夹下所有的文件夹和文件
- vc中treeview显示磁盘目录和文件代码
- 程序员网站资源宝库
- 用户控件和自定义控件的定义及区别
- 单一实例singleton
- 程式运行时不能跟踪调试,该怎样解决?
- 启动了一个Scrum 项目(二) Scrum Daily Meeting
- 用TreeView控件实现资源管理器(显示本地硬盘下所有文件夹和文件,并可以浏览图片)(示例代码下载)
- 一个WinForm记事本程序(包含主/下拉/弹出菜单/打开文件/保存文件/打印/页面设置/字体/颜色对话框/剪切版操作等等控件用法以及记事本菜单事件/按键事件的具体代码)
- C#读取设备信息(源代码下载)
- 演示事件(Event)怎样使用以及怎样为用户控件添加一个事件(示例代码下载)
- 操作层
- 统计访问次数
- 自动识别不同厂商浏览器
- 判断浏览器是是否支持某属性或方法
- 将用户个性化设置保存到客户端