• 关于WinForm中Pannel的定位问题 May 18th, 2010


    这两天弄一个WinForm程序,程序有个界面是由多个Panel组成,一个大的Panel包含N个小Panel,每个子Panel可以隐藏掉,或者显示出来,隐藏的子Pannel,它以下的panel需要顶上去
    因此就需要通过计算来设置panel.Location.Y的值。
    我的做法是使用一个成员变量Y来记录距离顶部的高度,也就是每次显示一个Panel的时候加上它的高度,也就是
    Y += panel.Location.Y;
    每次隐藏panel的时候,Y -= pannel.Location.Y;
    但是当界面出现较多Panel,然后界面出现滚动条时,再显示Panel的时候就出现问题。
    后来请教了同事,终于发现问题的所在:

    原来panel.Location的值是相对于窗体的最上方,而不是相对父Panel。
    所以当屏幕出现滚动的时候,那么就需要减去滚动的长度。也就是需要加上第一个Panel的高度,因为第一个是负数了。
    也就是panel.Location = new Point(x,Y+firstPanel.Location.Y)

  • 相关阅读:
    精英程序员
    C语言(2)
    C语言练习
    C语言工具---Code::Blocks
    C语言(1)
    【udacity】机器学习-神经网络
    【udacity】机器学习-回归
    【udacity】机器学习-决策树
    【术语记录】机器学习
    python入门(九):目录操作
  • 原文地址:https://www.cnblogs.com/coolkiss/p/1768641.html
Copyright © 2020-2023  润新知