ImageList+Listview设计图片浏览器

简介: 需要在窗体增加imageList和listview控件,并把ListView控件的LargeImageList设置为imageList1 ListView控件显示图片的大小可以在imageList1控件中调整ImageSize属性,如果图片失真,可以设置imageList1控件的ColorDepth值为Depth32Bit.

需要在窗体增加imageList和listview控件,并把ListView控件的LargeImageList设置为imageList1

ListView控件显示图片的大小可以在imageList1控件中调整ImageSize属性,如果图片失真,可以设置imageList1控件的ColorDepth值为Depth32Bit.

窗体设计:

image

参考代码:


  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using System.IO;
  10. using EXCEL = Microsoft.Office.Interop.Excel;
  11. using WORD = Microsoft.Office.Interop.Word;
  12. namespace ImageListView
  13. {
  14.     public partial class OfficeTextEditor : Form
  15.     {
  16.         private LanguageWizard mParentFrm;
  17.         public OfficeTextEditor(LanguageWizard parentFrm)
  18.         {
  19.             InitializeComponent();
  20.             this.mParentFrm = parentFrm;
  21.             fillListView_Word();
  22.             fillListView_Excel();
  23.         }
  24.         private List mLViewWord_FileName = new List();
  25.         private void fillListView_Word()
  26.         {
  27.             DirectoryInfo dir = new DirectoryInfo(Application.StartupPath + @"\Word");
  28.           
  29.             listViewWord.Items.Clear();
  30.             this.imageListWord.Images.Clear();
  31.             foreach (FileInfo d in dir.GetFiles())
  32.             {
  33.                 if (d.Name.EndsWith("_E.doc"))
  34.                 {
  35.                     mLViewWord_FileName.Add(d.FullName);
  36.                 }
  37.             }
  38.             for (int i = 0; i mLViewWord_FileName.Count; i++)
  39.             {
  40.                 this.imageListWord.Images.Add(System.Drawing.Image.FromFile(dir + @"\WordItem.png"));
  41.                 this.listViewWord.Items.Add(System.IO.Path.GetFileName(mLViewWord_FileName[i]), i);
  42.                 this.listViewWord.Items[i].ImageIndex = i;
  43.                 this.listViewWord.Items[i].Name = mLViewWord_FileName[i];
  44.             }
  45.         }
  46.         private List mLViewExcel_FileName = new List();
  47.         private void fillListView_Excel()
  48.         {
  49.             DirectoryInfo dir = new DirectoryInfo(Application.StartupPath + @"\Excels");
  50.             listViewExcel.Items.Clear();
  51.             this.imageListExcel.Images.Clear();
  52.             foreach (FileInfo d in dir.GetFiles())
  53.             {
  54.                 if (d.Name.EndsWith("_E.xls"))
  55.                 {
  56.                     mLViewExcel_FileName.Add(d.FullName);
  57.                 }
  58.             }
  59.             for (int i = 0; i mLViewExcel_FileName.Count; i++)
  60.             {
  61.                 this.imageListExcel.Images.Add(System.Drawing.Image.FromFile(dir + @"\ExcelItem.png"));
  62.                 this.listViewExcel.Items.Add(System.IO.Path.GetFileName(mLViewExcel_FileName[i]), i);
  63.                 this.listViewExcel.Items[i].ImageIndex = i;
  64.                 this.listViewExcel.Items[i].Name = mLViewExcel_FileName[i];
  65.             }
  66.         }
  67.         private void button1_Click(object sender, EventArgs e)
  68.         {
  69.             //this.mParentFrm.Show();
  70.             this.Close();
  71.         }
  72.         private void listViewWord_MouseDoubleClick(object sender, MouseEventArgs e)
  73.         {
  74.             ListViewHitTestInfo info = listViewWord.HitTest(e.X, e.Y);
  75.             if (info.Item != null)
  76.             {
  77.             }
  78.         }
  79.         private void listViewExcel_MouseDoubleClick(object sender, MouseEventArgs e)
  80.         {
  81.             ListViewHitTestInfo info = listViewExcel.HitTest(e.X, e.Y);
  82.             if (info.Item != null)
  83.             {
  84.                 EXCEL.Application eApp = new EXCEL.Application();
  85.                 EXCEL.Workbook workBook = eApp.Workbooks.Open(info.Item.Name);
  86.                 EXCEL.Worksheet workSheet = eApp.ActiveSheet;
  87.                 try
  88.                 {
  89.                     eApp.Visible = true;
  90.                 }
  91.                 catch (Exception ex)
  92.                 {
  93.                     MessageBox.Show(ex.Message);
  94.                 }
  95.                 finally
  96.                 {
  97.                     /* 关掉任务管理器中的进程EXCEL/WORD的关键代码 */
  98.                     System.Runtime.InteropServices.Marshal.ReleaseComObject(eApp);
  99.                     System.Runtime.InteropServices.Marshal.ReleaseComObject(workBook);
  100.                     System.Runtime.InteropServices.Marshal.ReleaseComObject(workSheet);
  101.                     eApp = null;
  102.                     workBook = null;
  103.                     workSheet = null;
  104.                     GC.Collect();
  105.                 }
  106.             }
  107.         }

  108.     }
  109. }


运行效果:

image


参考网址:

http://www.cnblogs.com/hfzsjz/p/3929131.html

相关文章
|
3月前
|
计算机视觉 C++
基于Qt的简易图片浏览器设计与实现
基于Qt的简易图片浏览器设计与实现
155 1
|
10月前
|
JavaScript 对象存储
在阿里云OpenAPI 为什么oss 图片链接, 在浏览器访问直接下载了,不是预览呢?
在阿里云OpenAPI 为什么oss 图片链接, 在浏览器访问直接下载了,不是预览呢?
923 1
|
移动开发 开发框架 小程序
|
3天前
|
XML 缓存 JSON
为什么浏览器中有些图片、PDF等文件点击后有些是预览,有些是下载
为什么浏览器中有些图片、PDF等文件点击后有些是预览,有些是下载
8 0
|
2月前
|
Web App开发 JavaScript 前端开发
使用 JS 实现在浏览器控制台打印图片 console.image()
在前端开发过程中,调试的时候,我们会使用 console.log 等方式查看数据。但对于图片来说,仅靠展示的数据与结构,是无法想象出图片最终呈现的样子的。 虽然我们可以把图片数据通过 img 标签展示到页面上,或将图片下载下来进行预览。但这样的调试过程实在是复杂,何不实现一个 console.image() 呢?
58 1
使用 JS 实现在浏览器控制台打印图片 console.image()
|
1月前
|
Web App开发 前端开发
canvas保存图片时,谷歌浏览器Chrome报错【解决方案】Not allowed to navigate top frame to data URL
canvas保存图片时,谷歌浏览器Chrome报错【解决方案】Not allowed to navigate top frame to data URL
50 0
|
2月前
|
缓存 算法 API
视觉智能开放平台产品使用合集之如何在Web浏览器中查看处理后的图片
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
131 0
|
3月前
|
移动开发 JavaScript
微信公众号H5开发,在微信浏览器打开H5,无法一键下载图片
微信公众号H5开发,在微信浏览器打开H5,无法一键下载图片
137 0
|
3月前
|
域名解析 应用服务中间件 对象存储
解决阿里云oss图片浏览器访问直接下载而不是打开
解决阿里云oss图片浏览器访问直接下载而不是打开
1867 0
|
JavaScript
Qt图片浏览器
可以显示jpg、jpeg、png、bmp。可以从电脑上拖动图到窗口并显示出来或者打开文件选择 重载实现dragEnterEvent(拖拽)、dropEvent(拖拽放下)、resizeEvent(窗口大小改变)
89 0