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

  • 相关阅读:
    js命名空间
    window安装node.js
    JS添加可信站点、修改ActiveX安全设置,禁用弹出窗口阻止程序的方法
    Javascript 操作select控件大全(新增、修改、删除、选中、清空、判断存在等)
    DIV+CSS两种盒子模型
    table中的tbody标签
    兼容获取元素的样式属性值
    Arch linux 使用心得
    763. 划分字母区间
    <Leetcode>93. 复原地址
  • 原文地址:https://www.cnblogs.com/KevinBran/p/10490101.html
Copyright © 2011-2022 走看看