C# WinForm实现图片浏览器

C#WinForm程序设计之图片浏览器,这次我们一起做一个图片查看器,这个图片查看器的原始图如下:

我们首先来介绍一下这个原始图的构成:

左边上面是一个 TextBox 和 一个 Button,分别用来显示当前路径以及返回上一个路径。左边下面是一个浏览文件的文件路径树状图(TreeView),用来显示当前路径下的文件和文件夹。右边是一个pictureBox,用来展示选中的图片。

接下来我们一步一步实现这个图片查看器!

首先大家应该看到了左边的TreeView上面已经有显示当前PC的所有路径信息,那么是怎么做到的呢?
方法很简单,就是先监听窗口的 Load 事件,代码如下:

private void Form1_Load(object sender, EventArgs e)
    {
      createDrivers();//调用下面的函数
    }
    private void createDrivers()
    {
      DirectoryInfo di;
      TreeNode tn;
      string s;
      foreach (string ss in Environment.GetLogicalDrives())
      {
        /**
         * ss的值形式如下:
         * C:\
         * D:\
         * E:\
         * F:\
         * I:\
         */
        di = new DirectoryInfo(ss); //生成路径
        if (di.Exists) //如果当前路径存在
        {
          s = ss.Substring(0, ss.IndexOf("\\")); //去掉路径的 \ 得到如:C:
          tn = new TreeNode(ss); //设置结点的值
          tn.Tag = "Root";
      treeView1.Nodes.Add(tn); //把结点加入到TreeView中
     }
  }
}

接下来我们设置每个 Node 的点击事件,也就是监听 AfterSelect 事件:

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
    {
      TreeNode tn = e.Node; //得到发生选择事件的结点
      path = tn.FullPath;  //得到完整的路径 path是一个定义的全局变量
      textBox1.Text = path; //在左上角的文本框显示完整的路径
      if (tn.Tag.ToString() == "File") //如果当前结点是文件
      {
        string ext = path.Substring(path.LastIndexOf(".") + 1); //得到文件的后缀
        ext = ext.ToLower();
        if (ext == "ico" || ext == "gif" || ext == "jpg" || ext == "png" || ext == "bmp") //如果是图片,设置到右边的pictureBox
          pictureBox1.Image = Image.FromFile(path);
        else //否则使用系统默认的工具打开该文件
          System.Diagnostics.Process.Start(path);
      }
      else //反之当前结点是文件夹
      {
        getSubContents(tn);//得到当前结点的全部内容
      }
    }

    private void getSubContents(TreeNode parent)
    {
      DirectoryInfo di;
      TreeNode tn;
      di = new DirectoryInfo(parent.FullPath + "\\"); //得到路径
      if (!di.Exists) return;             //路径不存在,直接返回
      foreach (DirectoryInfo d in di.GetDirectories()) //该路径下面的所有 文件夹
      {
        tn = new TreeNode(d.Name);
        tn.Tag = "Directory";
        parent.Nodes.Add(tn); //将该节点添加到父节点
      }
      foreach (FileInfo f in di.GetFiles())
      {
        tn = new TreeNode(f.Name); //该路径下的所有 文件
        tn.Tag = "File";
        parent.Nodes.Add(tn);
      }
      treeNode = parent;// 全局变量 记录当前结点
    }

接下来我们运行一下看看效果(pictureBox的大小模式设置成Zoom)

你们有没有成功呢?

接下来就是实现那个 Back 按钮的回退功能了!

private void button1_Click(object sender, EventArgs e)
    {
      DirectoryInfo di = new DirectoryInfo(path + "\\");

      int p = path.LastIndexOf("\\");
      if (p >= 0)
      {
        path = path.Substring(0, p);
        textBox1.Text = path;
        if (treeNode != null) {             //全局变量 当前选中的结点

          treeNode.Nodes.Clear();           //移除当前结点下的所有子节点
          treeView1.SelectedNode = treeNode.Parent;  //设置他的父节点为当前选中结点
        }
      }
    }

这样这个小项目就算完成了,是不是很轻松?

(0)

相关推荐

  • C#图片查看器实现方法

    实现效果: 注意:using system.io; 往Form1上添加控件picturebox,再添加imagelist,并设置imagelist的imagesize大小 Form1.cs代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Te

  • C#实现上传下载图片

    本文实例为大家分享了C#实现上传下载图片的具体代码,供大家参考,具体内容如下 1.首先我们通过流来上传下载图片,所有操作只停留在流这一层 MemoryStream ms; //左侧按钮 private void button1_Click(object sender, EventArgs e) { ms = new MemoryStream(); Image bi =pictureBox1.Image; bi.Save(ms, pictureBox1.Image.RawFormat);//将图片

  • C#设置Word文档背景的三种方法(纯色/渐变/图片背景)

    Word是我们日常生活.学习和工作中必不可少的文档处理工具.精致美观的文档能给人带来阅读时视觉上的美感.在本篇文章中,将介绍如何使用组件Free Spire.Doc for .NET(社区版)给Word设置文档背景.下面的示例中,给Word添加背景分为三种情况来讲述,即添加纯色背景,渐变色背景和图片背景. 工具使用:下载安装控件Free Spire.Doc后,在项目程序中添加Spire.Doc.dll即可(该dll可在安装文件下Bin文件夹中获取) 一.添加纯色背景 using Spire.Do

  • C#利用GDI+给图片添加文字(文字自适应矩形区域)

    前言 这篇文章是 GDI+ 总结系列的第二篇,如果对 GDI+ 的基础使用不熟悉的朋友可以先看第一篇文章<C# 使用 GDI+ 画图>. 需求 需求是要做一个编辑文字的页面.用户在网页端写文字,文字区域是个矩形框,用户可以通过下方的拖动条调节文字大小. 如下图: 提交数据的时候前端传文字区域的左上角和右下角定位给后台.因为前端的字体大小单位与后端没什么关系,所以不能直接传字体大小,也就是后端要根据矩形区域以及文字内容来自己推算用什么样的字体大小合适. 简单说就是知道文字的矩形区域,以及文字内容

  • C#二维码图片识别代码

    本文实例为大家分享了C#二维码图片识别的具体代码,供大家参考,具体内容如下 怎么用NuGet和怎么配置log4net就不介绍了,直接上代码(Visual Studio 2015 下的项目,用的.NET Framework 4.5.2). 其中QRDecodeConsoleApp.exe.config文件里配置图片路劲(默认为D:\我的文档\Pictures\二维码).图片类型(默认为*.png). 也支持在命令行里执行,exe后接图片路劲参数. 需要直接用的朋友,确认完QRDecodeDemo\

  • c#生成自定义图片方法代码实例

    本篇文章给大家带来的内容是关于c# 如何生成自定义图片?c# 生成自定义图片方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. using System.Drawing;using System.IO;using System.Drawing.Imaging;using System;namespace treads { /// <summary> /// 生成略缩图 /// </summary> public class Class2 { private Ima

  • C#生成验证码图片的方法

    本文实例为大家分享了C#生成验证码图片的具体代码,供大家参考,具体内容如下 /// <summary> /// 生成验证码图片 /// </summary> /// <returns></returns> public byte[] GetVerifyCode() { int codeW = 80; int codeH = 40; int fontSize = 18; string chkCode = string.Empty; //颜色列表,用于验证码.噪

  • C#对图片进行马赛克处理可控制模糊程度的实现代码

    具体代码如下所示: using System.Drawing; using System.Drawing.Imaging; using System.Web.Mvc; namespace MVC2017_Sample.Controllers { public class DefaultController : Controller { public ActionResult Index() { //原图 Image img = Image.FromFile("c:\\1.jpg");

  • C# WinForm实现图片浏览器

    C#WinForm程序设计之图片浏览器,这次我们一起做一个图片查看器,这个图片查看器的原始图如下: 我们首先来介绍一下这个原始图的构成: 左边上面是一个 TextBox 和 一个 Button,分别用来显示当前路径以及返回上一个路径.左边下面是一个浏览文件的文件路径树状图(TreeView),用来显示当前路径下的文件和文件夹.右边是一个pictureBox,用来展示选中的图片. 接下来我们一步一步实现这个图片查看器! 首先大家应该看到了左边的TreeView上面已经有显示当前PC的所有路径信息,

  • drag-and-drop实现图片浏览器预览

    今天刚试过chrome的drag and drop API,它能非常简单的将本地的图片放到浏览器中进行预览.试想一下当我们把一个文图片拖拽到浏览器里会发生什么事情,你的浏览器试图打开一个新的页面并加载这个图片.现在我不想浏览器这样帮我处理图片,我希望我拖拽的图片能立即放到我预先规定的位置并迅速回显,这就需要javascript中event对象的两个函数stopPropergation()和preventDefault().前者将会阻止事件的冒泡,后者会阻止浏览器默认的行为. 这里我们定义一个ig

  • iOS开发中使用UIScrollView实现无限循环的图片浏览器

    一.概述 UIKit框架中有大量的控件供开发者使用,在iOS开发中不仅可以直接使用这些控件还可以在这些控件的基础上进行扩展打造自己的控件.在这个系列中如果每个控件都介绍一遍确实没有必要,所谓授人以鱼不如授人以渔,这里会尽可能让大家明白其中的原理,找一些典型的控件进行说明,这样一来大家就可以触类旁通.今天我们主要来看一下UIScrollView的内容: UIView UIScrollView 实战--图片浏览器 二.UIView 在熟悉UIScrollView之前很有必要说一下UIView的内容.

  • iOS仿微博图片浏览器

    KNPhotoBrower 高仿微博图片浏览器 PhotoBrower.gif 一.功能描述及要点 1.加载网络九宫格图片,collectionView,scrollView 2.SDWebImage下载图片,KNProgressHUD显示加载进度 3.高仿微博,显示动画,KNToast提示 二.方法调用 1.创建KNPhotoBrower,并传入相应的参数 // 每一个图片控件对象, 对一一对应 KNPhotoItems ,再将多个KNPhotoItems 对象放入数组 KNPhotoItem

  • Android使用gallery和imageSwitch制作可左右循环滑动的图片浏览器

    效果图: 为了使图片浏览器左右无限循环滑动 我们要自定义gallery的adapter 如果要想自定义adapter首先要了解这几个方法 @Override public int getCount() { // TODO Auto-generated method stub return 0; } @Override public Object getItem(int position) { // TODO Auto-generated method stub return null; } @O

  • 使用wxpython实现的一个简单图片浏览器实例

    上次我爬了n多图片,但是浏览的时候有一个问题. 图片浏览器的浏览一般都是按名称排的,而我对图片的命名是按照数字递增的.比如3总是会排在10后面,也就无法快速地浏览图片了. 所以,出于方便自己查阅图片,也出于学习,决定做一个自己的图片浏览器. 目标:浏览目录,通过滚轮不断显示同一个文件夹下的图片,并自定义排序. 步骤0:要实现图形界面,我使用wxPython. 至于如何安装和简单地使用wxpython,可以到网上检索,一大堆资料. 以下步骤默认你已经知道如何生成一个自己的frame. 步骤1:浏览

  • bcastr2.0 通用的图片浏览器

    bcastr2.0 是一款通用的图片浏览器,可以用于各种新闻系统或者blog系统. 主要功能:1.可以读取xml设置播放列表 2.可以不使用xml将图片地址直接写网页中直接 3.可以读取swf的动画格式 4.自动适应图片大小 5.循环播放,自定义自动播放时间 6.不限制图片数量 使用方法: 以下是嵌入网页中的2种方法 方法一,xml地址 复制代码 代码如下: <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" 

  • 来自ImageSee官方 JavaScript图片浏览器 原创

    使用方法: 访问"imagesee.htm的网址+?pic=图片的网址&page=该图片相关网页的网址" 即可,其中page参数可以忽略. 关于ImageSee: ImageSee是开放源代码的网页图片浏览器,由JavaScript写成,是一个完全静态网页.同时支持IE Firefox Opera浏览器. 透过ImageSee,您可以方便的对网上的高清图片(大图片)进行浏览,具备常规的图片浏览所需要的全部主要功能:放大缩小.缩略图.图片鼠标拖动. 更多特色: 完全免费开放使用,

  • 发布BlueShow v1.0 图片浏览器(类似lightbox)blueshow.js 打包下载

    好多天没有发过日志了~  最近写了一个图片浏览器,是为PHPCMS文件管理器设计的,但后来看到了Lightbox,所以就改了一下,可以给一般的网页使用. 演示及说明地址:  http://longbill.cn/down/sample/blueshow/index.htm 使用方法:   1.下载 blueshow.js文件,放到服务器上  你也可以直接使用这个: http://www.jb51.net/downtools/blueshow.js 2.在你要用此程序的网页中写上这句(在和之间):

  • JavaScript 类似flash效果的立体图片浏览器

    PS:显示效果图,大家可以根据自己的需求调整图片的样式哦代码 复制代码 代码如下: <style type="text/css"> //图片浏览器容器 #container{position:absolute;} #container img{position:absolute;} //半透明遮罩层样式 .mask2{ background:#99FF00; opacity:0.3; filter:Alpha(Opacity='30'); position:absolute

随机推荐