一、PictureBox 图片显示控件
1. 控件核心概述
PictureBox 是 WinForm 专用图片展示控件,继承自 Control 基类,拥有控件通用属性(位置、大小、可见性等),主要用于窗体加载、展示、预览图片,支持图片自适应、用户交互事件,是图像处理最核心控件。
2. 两种创建方式
-
设计器创建:直接从工具箱拖拽控件到窗体,快速布局
-
代码动态创建:new 实例化,手动配置属性并挂载到窗体
3. 核心属性拆分(带考点)
(1)基础样式属性
cs
// 考点:设置控件尺寸大小
pictureBox1.Size = new Size(200, 150);
// 考点:设置控件在窗体的坐标位置
pictureBox1.Location = new Point(10, 10);
(2)图片加载属性
cs
// 考点:通过文件路径加载图片(需保证路径合法、权限足够)
pictureBox1.Image = Image.FromFile(@"F:\xxx\0001.PNG");
// 考点:直接绑定图片路径,简化图片加载写法
pictureBox1.ImageLocation = @"F:\xxx\0001.PNG";
(3)重点必考:SizeMode 图片适配模式
用于控制图片与 PictureBox 控件的适配规则,共5种模式,考试高频考点:
-
Normal:标准模式,图片置顶左上角,超出控件区域的部分直接裁剪,无缩放
-
StretchImage :拉伸适配,强行拉伸图片匹配控件大小,可能失真变形
-
Zoom :等比例缩放,完整显示整张图片,保持比例不失真(最常用)
-
AutoSize:控件自适应图片,控件大小跟随图片尺寸变化
-
CenterImage:图片居中显示,图片大于控件时仅展示中间区域
cs
// 考点:设置图片拉伸适配模式
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
// 常用不失真模式
// pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
4. 常用交互事件
PictureBox 支持鼠标交互事件,实现图片点击、悬浮等效果
cs
// 考点:图片点击事件,双击控件自动生成
private void pictureBox1_Click(object sender, EventArgs e)
{
MessageBox.Show("图片被点击了!");
}
拓展常用事件:MouseEnter(鼠标移入)、MouseLeave(鼠标移出)
5. 开发注意事项
-
文件加载图片时,必须保证路径正确、程序有访问权限,否则报错
-
加载超大图片易占用内存,建议提前压缩、缩放图片,优化性能
-
注意控件层级关系,避免被其他控件遮挡,导致图片不显示
二、ImageList 图片集合组件
1. 组件核心概述
ImageList 是图片容器组件,专门用于批量存储、管理多张图片,自身不单独显示,必须搭配 PictureBox、Label、Button、ListView 等控件使用,可实现图片复用、轮播切换,大幅减少内存占用。
2. 核心特点
-
统一管理多张图片,支持通过索引快速调取图片
-
支持控件共享图片资源,避免重复加载,优化程序性能
-
统一设置图片尺寸、透明度、色深,规范图片展示效果
3. 核心属性
-
Images:图片集合,存储所有添加的图片,通过索引读取
-
ImageSize:统一设置集合内所有图片的尺寸
-
ColorDepth:设置图片颜色深度
-
TransparentColor:设置图片透明底色
4. 组件使用流程
-
添加 ImageList 组件到窗体(设计器拖拽/代码 new 实例)
-
通过属性面板或代码
Images.Add()批量添加图片 -
配置统一图片尺寸、色深等全局样式
-
绑定目标控件,通过索引调用集合内图片
5. 经典案例:图片轮播(代码拆分+考点注释)
cs
using System;
using System.Windows.Forms;
namespace _10_轮播图
{
public partial class Form1 : Form
{
// 考点:定义全局索引,记录当前展示图片下标
int index = 0;
public Form1()
{
InitializeComponent();
}
// 窗体加载默认显示第一张图片
private void Form1_Load(object sender, EventArgs e)
{
// 考点:通过索引读取ImageList集合中的图片
pictureBox1.Image = imageList1.Images[index];
}
// 轮播切换按钮点击事件
private void button1_Click(object sender, EventArgs e)
{
// 考点:索引自增,切换下一张
index++;
// 考点:边界判断,超出最大索引归零,实现循环轮播
if (index >= 5)
{
index = 0;
}
// 考点:更新PictureBox展示图片
pictureBox1.Image = imageList1.Images[index];
}
}
}
6. 拓展用法
ImageList 可绑定 Label、Button 等控件,快速为控件设置背景图、图标,统一项目图片样式,简化多图片布局代码。
三、必考总结+背诵口诀
1. 核心考点汇总
-
PictureBox 核心难点:SizeMode 五种适配模式(Zoom 不失真、StretchImage 拉伸失真)
-
图片加载两种方式:文件路径加载、路径直接绑定
-
ImageList 核心:批量存图、索引调用、控件复用、不单独展示
-
轮播图核心逻辑:索引自增 + 边界归零循环
2. 背诵口诀
-
图片控件PB做主,五种适配要记熟
-
Stretch拉伸会变形,Zoom缩放形不惊
-
ImageList存图集,索引调取最便利
-
单独无用靠绑定,轮播复用省内存