• .Net中的AutoScrollPosition问题 (panel 滚动条的位置设定)


    本文转自:http://www.cnblogs.com/h2appy/archive/2008/04/23/1167400.html

    有Panel类型的窗体panel1,其AutoScroll设为了True。

    在使用AutoScrollPosition调整滚动条时出现了很混乱的现象,有时滚动条会自动滚动到起始处。

    经过试验,找到了原因:

    以调整水平滚动条为例。
    例子一:
    Point p = new Point(20, 0);
    panel1.AutoScrollPosition = p;
    上面两行代码使滚动条向右滚动了20个像素点;注意,此时的AutoScrollPosition的值是(-20, 0)!就是说
    AutoScrollPosition自动给20加了个“负号”。
    例子二:
    Point p = new Point(-20, 0);
    panel1.AutoScrollPosition = p;
    这两行代码使滚动条滚动到了起始处,因为-20前面再加一个“负号”就变成了正数20,而滚动条起始位置是0,
    越向右值越小(负数)。滚动条不能滚动到起始点左侧去,所以内部自动抛弃了20,取值为0。
    例子三:
    在使用AutoScrollPosition.X时也要注意它是非正数(0或负数),比如想在当前滚动条位置的基础上再向
    右滚动10个像素,应该:
    Point p = new Point(10 - panel1.AutoScrollPosition.X, 0);
    panel1.AutoScrollPosition = p;
    因为panel1.AutoScrollPosition.X是负数所以要用10减去panel1.AutoScrollPosition.X,使之变为正数。

    总之,在使用AutoScrollPosition时只要记得两点:
    1、水平滚动条起始点的AutoScrollPosition.X值为0,越往右值越小(负数)。
    2、通过Point类型的方式给AutoScrollPosition.X赋值时,内部自动将数值前加了一个“负号”。

  • 相关阅读:
    4 种高可用 RocketMQ 集群搭建方案!
    Spring @Autowired 注解自动注入流程是怎么样?
    AQS 自定义同步锁,挺难的!
    PyCharm爬虫实例:使用Scrapy抓取网页特定内容、数据采集与数据预处理--biaobiao88
    Ubuntu中安装Hadoop出现的问题
    Win10系统FF新推荐弹窗的卸载方法
    Sublime Text 中文乱码(解决)
    JProfiler的安装
    稀疏数组
    算法基础<一>
  • 原文地址:https://www.cnblogs.com/KevinBran/p/10490101.html
Copyright © 2020-2023  润新知