c#中鼠标滚轮对PictureBox的缩放

这个其实蛮好想的。。。

思路就是用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()就行了

你可能感兴趣的:(C#相关)