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()就行了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章