这个其实蛮好想的。。。
思路就是用PictureBox的鼠标滚轮事件实现对PictureBox大小的改变。
当然,就是别忘了一点,如果直接写MouseWheel事件是不行的,因为如果把鼠标放在pictureBox上时,当前焦点是窗体,而不是pictureBox,所以还要加一个MouseEnter事件
对于滚轮事件有一点,就是用e.Delta的数值正负来判断鼠标滚轮的方向。而触发事件的数值一般都是正负120。
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 PictureBoxDemo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void pictureBox1_MouseEnter(object sender, EventArgs e)//当鼠标移到pictuBox内,获取焦点
{
pictureBox1.Focus();
}
private void pictureBox1_MouseWheel(object sender,MouseEventArgs e)
{
if (e.Delta>=0)
{
pictureBox1.Width = (int)(pictureBox1.Width * 1.1);//因为Widthh和Height都是int类型,所以要强制转换一下-_-||
pictureBox1.Height = (int)(pictureBox1.Height * 1.1);
}
else
{
pictureBox1.Width = (int)(pictureBox1.Width * 0.9);
pictureBox1.Height = (int)(pictureBox1.Height * 0.9);
}
}
}
}
当然,这个pictureBox1是我提前放在窗体内的,所以可以用pictureBox1.focus(),如果不知道变量名的话,有个方法就是自己写一个类来继承PictureBox,然后用this.focus()就行了