为了批量显示图片,我用了一个panel,autoscroll设置为true,在pannel上使用了一个Label,在Label上使用了3个Picturebox。
根据需显示图片的数量,设置Label的height,使panel产生滚动条。根据panel1_Scroll中e.NewValue的值,设置3个picturebox的位置及显示图片的内容。
现在的问题是:没有写MouseWheel事件,但窗口浏览时还支持鼠标滚轮的滚动,同时右边的滚动条也响应的上下滚动,不过并没有触发Scroll事件,使得picturebox的位置及显示内容不随鼠标中键改变。
如何关联MouseWheel事件和Scroll事件??或者干脆取消panel对MouseWheel的支持~~~
两种方法分别如何实现?
根据需显示图片的数量,设置Label的height,使panel产生滚动条。根据panel1_Scroll中e.NewValue的值,设置3个picturebox的位置及显示图片的内容。
现在的问题是:没有写MouseWheel事件,但窗口浏览时还支持鼠标滚轮的滚动,同时右边的滚动条也响应的上下滚动,不过并没有触发Scroll事件,使得picturebox的位置及显示内容不随鼠标中键改变。
如何关联MouseWheel事件和Scroll事件??或者干脆取消panel对MouseWheel的支持~~~
两种方法分别如何实现?
{
int n =(int)Math.Truncate(Convert.ToDouble(e.NewValue / 400));//picturebox大小为800*400
if (n >= 1)
{
picBox1.Location = new Point(0, (n - 1) * 400);
picBox2.Location = new Point(0, n * 400);
picBox3.Location = new Point(0, (n + 1) * 400);
//dt是从数据库中读取的待显示图片的路径
picBox1.ImageLocation = dt.Rows[n - 1]["FilePath"].ToString();
picBox2.ImageLocation = dt.Rows[n]["FilePath"].ToString();
picBox3.ImageLocation = dt.Rows[n + 1]["FilePath"].ToString();
}
}
{
MessageBox.Show("滚动事件已被捕捉");
System.Drawing.Size t = pictureBox1.Size;
t.Width += e.Delta;
t.Height += e.Delta;
pictureBox1.Width = t.Width;
pictureBox1.Height = t.Height;
}