• .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赋值时,内部自动将数值前加了一个“负号”。

  • 相关阅读:
    Splunk_转发器配置_AD
    Splunk SPL 时间转换
    Splunk_索引自动清理历史数据
    Python 备查 线程池
    Splunk_SPL 排除搜索结果
    Splunk_SPL 查询时间范围
    质量的分级
    各类BOM
    Jmeter负载测试的注意事项
    MEM的面试记录
  • 原文地址:https://www.cnblogs.com/KevinBran/p/10490101.html
Copyright © 2020-2023  润新知