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

来源:互联网 发布:韩春雨造假知乎 编辑:程序博客网 时间:2024/04/29 10:18

这个其实蛮好想的。。。

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

0 0