1. 表示用于显示图像的 Windows 图片框控件。
2. PictureBox 属性:
- SizeMode:改变显示图片的方式,存在一个PictureBoxSizeMode枚举。
AutoSize,CenterImage,Normal,StretchImage(变形),Zoom(缩小)。 - BorderStyle:指示控件的边框样式。
- BackColor:获取或设置控件的背景色。指定为透明色。
pbox.BackColor = Color.Transparent;
- Image:获取或设置由 PictureBox 显示的图像。
- ErrorImage:获取或设置在图像加载过程中发生错误时,或者图像加载取消时要显示的图像。
- ImageLocation:获取或设置要在 PictureBox 中显示的图像的路径或 URL。
- InitialImage:获取或设置在加载主图像时显示在 PictureBox 控件中的图像。
- Location:获取或设置该控件的左上角相对于其容器的左上角的坐标。
- Size:获取或设置控件的高度和宽度。
代码:pbox.Size = new System.Drawing.Size(20, 18); - SizeMode:指示如何显示图像。
StretchImage(完全填充)、AutoSize(正常大小显示)、CenterImage(显示图像的中心部分)、Zoom(缩小或放大完全显示)
3. PictureBox 方法:
- Load(String):通过路径调用图片。
4. PictureBox 事件:
- MouseClick:在鼠标单击该控件时发生。
参数中含有MouseEventArgs e,e可以获取X,Y的值!
代码:Point myPT = new Point(e.X, e.Y); - Click:不具有上面的功能。
※ Properties\Resources.resx可以存储图片资源文件,也可以直接调用。如右图所示:
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;
namespace DrawPeachBlossom
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int flag = 0;//定义一个标识,用来标识画桃花的哪个部分
private void pictureBox2_Click(object sender, EventArgs e)
{
flag = 0;//标识绘制花骨朵
}
private void pictureBox3_Click(object sender, EventArgs e)
{
flag = 1;//标识绘制花蕾
}
private void pictureBox4_Click(object sender, EventArgs e)
{
flag = 2;//标识绘制开花效果
}
private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
Point myPT = new Point(e.X, e.Y);//获取鼠标单击位置
PictureBox pbox = new PictureBox();//实例化PictureBox控件
pbox.Location = myPT;//指定PictureBox控件的位置
pbox.BackColor = Color.Transparent;//设置PictureBox控件的背景色
pbox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;//设置PictureBox控件的图片显示方式
switch (flag)//判断标识
{
case 0:
pbox.Size = new System.Drawing.Size(20, 18);//设置PictureBox控件大小
pbox.Image = Properties.Resources._2;//设置PictureBox控件要显示的图像
break;
case 1:
pbox.Size = new System.Drawing.Size(30, 31);//设置PictureBox控件大小
pbox.Image = Properties.Resources._3;//设置PictureBox控件要显示的图像
break;
case 2:
pbox.Size = new System.Drawing.Size(34, 30);//设置PictureBox控件大小
pbox.Image = Properties.Resources._1;//设置PictureBox控件要显示的图像
break;
}
if (e.Button == MouseButtons.Left)//判断是否单击了鼠标左键
{
pictureBox1.Controls.Add(pbox);//将PictureBox控件添加到树枝上
}
}
}
}