panel1.HorizontalScroll.Value不能设置 [英] panel1.HorizontalScroll.Value cannot be set
本文介绍了panel1.HorizontalScroll.Value不能设置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
private void panel1_MouseWheel(object sender, MouseEventArgs e)
{
if (sCDLST.Count > 0)
{
float z = Z;
if (e.Delta > 0 && Z < 4) z += 0.1f;
else if (e.Delta < 0 && Z > 1) z -= 0.1f;
if (z != Z)
{
X = ((e.X + panel1.HorizontalScroll.Value) * z / Z - e.X);
Z = z;
Draw();
panel1.AutoScrollMinSize = new Size((int)(bMP1.Width), 0);
if (X < panel1.HorizontalScroll.Minimum) panel1.HorizontalScroll.Value = panel1.HorizontalScroll.Minimum;
else if (X > panel1.HorizontalScroll.Maximum) panel1.HorizontalScroll.Value = panel1.HorizontalScroll.Maximum;
else panel1.HorizontalScroll.Value = (int)X; //Problem : always zero
}
}
}
z: new zoom factor
Z: old zoom factor
Draw(): Redraw bMP1 based on new zoom factor
重新绘制bMP1
大家好!
这是当用户旋转鼠标滚轮时将执行固定缩放放大/缩小"的代码.然后它将根据新因素重新绘制位图.问题是我无法更新panel1.HorizontalScroll.Value
谢谢!
Hello everybody!
Here is the code that when user rotates the mouse wheel, "fixed-zoom in/out" will be performed. Then it will redraw the bitmap according to the new factor. The problem is that I cannot update the panel1.HorizontalScroll.Value
Thanks!
推荐答案
我认为使用Scroll事件可以使您的工作更轻松.
http://msdn.microsoft.com/en-us/library/system.windows.forms.scrollablecontrol.scroll.aspx [ ^ ]
http://msdn.microsoft.com/en-us/library/system. windows.forms.scrolleventargs.aspx [ ^ ]
I think you could have an easier time using the Scroll event.
http://msdn.microsoft.com/en-us/library/system.windows.forms.scrollablecontrol.scroll.aspx[^]
http://msdn.microsoft.com/en-us/library/system.windows.forms.scrolleventargs.aspx[^]
这篇关于panel1.HorizontalScroll.Value不能设置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文