110,534
社区成员
发帖
与我相关
我的任务
分享
private void pictureBox1_MouseEnter(object sender, EventArgs e)
{
pictureBox1.MouseWheel += new MouseEventHandler(pictureBox1_MouseWheel);
}
private void pictureBox1_MouseWheel(object sender, MouseEventArgs e)
{
MessageBox.Show(e.Delta.ToString());
//this.pictureBox1.Width = 50;
}
Image img = Image.FromFile(@"C:\Documents and Settings\All Users\Documents\My Pictures\示例图片\Water lilies.jpg");
private float scale = 1;
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
e.Graphics.ScaleTransform(this.scale, this.scale);
e.Graphics.DrawImage(this.img, p);
}
protected override void OnMouseWheel(MouseEventArgs e)
{
base.OnMouseWheel(e);
int wheels = e.Delta * SystemInformation.MouseWheelScrollLines / 120;
scale -= wheels * 0.001f;
this.Invalidate();
}
如果没有解决的话,可以看看我的代码
[DllImport("user32.dll")]
public static extern int WindowFromPoint(int xPoint, int yPoint);
void Form1_MouseWheel(object sender, MouseEventArgs e)
{
System.Drawing.Point p= PointToScreen(e.Location);
if (WindowFromPoint(p.X, p.Y) == pictureBox1.Handle.ToInt32())
{
if (e.Delta == 120)
{
MessageBox.Show("向前");
}
else if(e.Delta<0)
{
MessageBox.Show("向后");
}
}
}
private void Form1_Load(object sender, EventArgs e)
{
this.MouseWheel += new MouseEventHandler(Form1_MouseWheel);
}