示例说明:
代码示例演示 PictureBox 和 ListView 控件的用法。通过使用 BorderStyle 和 PictureBoxSizeMode 枚举分别设置 PictureBox.BorderStyle 和 PictureBox.SizeMode 属性来初始化 PictureBox。ListView 由 Samples 目录中的图片填充。当处理 ListView 控件的 MouseDown 事件时,将使用 GetItemAt 方法来确定某项是否被选定。如果某项被选定,事件处理程序将通过设置 PictureBox.Image 属性来显示选定的文件。
该示例要求 C:/Images目录中存在 JPG 文件。可以在源代码中的Images文件夹复制到C:盘下。
本来是直接从微软那边复制过来的。可是微软的代码也太毛病了吧!
反正我也理解这个方法的用处了,不如我自己来设计窗体得了。
关键方法:
ListView.GetItemAt():检索位于指定位置的项。
程序截图
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace Demo05
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void MainForm_Load(object sender, EventArgs e)
{
this.InitializeListView();
this.PicturesListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
}
/// <summary>
/// 读取目录中的图片文件列表,并显示在列表框中。
/// </summary>
private void InitializeListView()
{
DirectoryInfo directory = new DirectoryInfo("C://Images");
FileInfo[] Files = directory.GetFiles("*.jpg");
if (Files != null)
{
this.PicturesListView.BeginUpdate();
foreach (FileInfo file in Files)
{
ListViewItem Item = new ListViewItem();
Item.Text = file.Name;
Item.SubItems.Add(file.FullName);
this.PicturesListView.Items.Add(Item);
}
this.PicturesListView.EndUpdate();
}
}
/// <summary>
/// 获取鼠标单击位置的项,并显示所代表的图片文件。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void PicturesListView_MouseDown(object sender, MouseEventArgs e)
{
ListViewItem SelectionItem = this.PicturesListView.GetItemAt(e.X, e.Y);
if (SelectionItem != null)
{
this.PictureBox1.Image = Image.FromFile(
SelectionItem.SubItems[1].Text);
}
}
}
}