0
点赞
收藏
分享

微信扫一扫

ListView控件演示05:获取指定坐标点的列表项


示例说明:
代码示例演示 PictureBox 和 ListView 控件的用法。通过使用 BorderStyle 和 PictureBoxSizeMode 枚举分别设置 PictureBox.BorderStyle 和 PictureBox.SizeMode 属性来初始化 PictureBox。ListView 由 Samples 目录中的图片填充。当处理 ListView 控件的 MouseDown 事件时,将使用 GetItemAt 方法来确定某项是否被选定。如果某项被选定,事件处理程序将通过设置 PictureBox.Image 属性来显示选定的文件。
该示例要求 C:/Images目录中存在 JPG 文件。可以在源代码中的Images文件夹复制到C:盘下。

本来是直接从微软那边复制过来的。可是微软的代码也太毛病了吧!
反正我也理解这个方法的用处了,不如我自己来设计窗体得了。

关键方法:
ListView.GetItemAt():检索位于指定位置的项。

 

程序截图

ListView控件演示05:获取指定坐标点的列表项_null

 

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);
            }
        }
    }
}

 

举报

相关推荐

0 条评论