panel1.Horizo​​ntalScroll.Value不能设置 [英] panel1.HorizontalScroll.Value cannot be set

查看:95
本文介绍了panel1.Horizo​​ntalScroll.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.Horizo​​ntalScroll.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.Horizo​​ntalScroll.Value不能设置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆