当我设一个控件的位置时
如:
control1.top= 300+x*20;
control1.left =300+y*20;当我滚动滚动条后(panel),取的位置数据是对的,可是当滚动后,是以当前的最高点的位置(滚动后的最高位置为所看到的位置为0)。
是否懂我这意思?就是我滚动后,如top=300+3*30,left=300+2*20.
可是显示后的得top=300+3*30+(我所滚动过的位置哪如500)怎么解决这个问题
如:
control1.top= 300+x*20;
control1.left =300+y*20;当我滚动滚动条后(panel),取的位置数据是对的,可是当滚动后,是以当前的最高点的位置(滚动后的最高位置为所看到的位置为0)。
是否懂我这意思?就是我滚动后,如top=300+3*30,left=300+2*20.
可是显示后的得top=300+3*30+(我所滚动过的位置哪如500)怎么解决这个问题
解决方案 »
- 程序一运行先弹出口令对话框,口令正确继续运行,错误就退出
- assemblyinfo.cs文件里的guid值如何提取?
- 高深高难度:关于DLL函数指针的传递
- win2000操作系统+vs2005.net2.0无法访问远程数据库
- FreeTextBox 1.6.3
- 2003读取oracle数据库时中文显示为乱码怎么解决?
- system.data.sql 命名空间是否存在呢!
- 关于一个图像处理的比较难的问题。
- C#如何将图片转换为字符串再转回来?
- 把数据库image字段内容一载到客户端时,怎样使弹出的下载窗口的保存文件名为指定的文件名?
- Hashtable的问题
- 各位大哥,請幫幫小妹一個問題棘手的問題.關於屏蔽事件的問題.
就是我滚动后,如top=300+3*30,left=300+2*20.得到的数是对的
但是,结时是当前的绝对位置不是a=panel的最顶端为0,而是滚动到的最顶端为0
ScrollableControl.AutoScrollPosition 属性
属性值
表示自动滚动位置的 Point,单位为像素。 AutoScrollPosition 属性用于调整可滚动控件上包含的控件的位置。将控件添加到可滚动控件中时,必须加上或减去 AutoScrollPosition 的 x 坐标和 y 坐标,作为距离所添控件的 Control.Location 属性的相应坐标的偏移量。若要将控件添加到滚动位置的上方或左侧,则必须在目标位置的基础上加上该偏移量。如果将控件添加到滚动位置的下方或右侧,则必须减去该偏移量。注意
AutoScrollPosition 表示可滚动控件显示框的位置。如果控件从其起始位置 (0,0) 开始向远离起始位置的方向滚动,则检索的 X 和 Y 坐标值将为负数。设置此属性时,必须总是指定正的 X 和 Y 值,以设置相对于起始位置的滚动位置。例如,如果有一个水平滚动条,x 和 y 都设置为 200,则该滚动条向右移动 200 个像素;如果又将 x 和 y 都设置为 100,则滚动条向左移动 100 个像素,原因是设置的 100 个像素是与起始位置的距离。第一次设置时,AutoScrollPosition 返回 {-200, 0};第二次设置时,它返回 {-100,0}。
若要检测 AutoScrollPosition 是否更改,请为 Paint 事件创建一个事件处理程序,将旧位置值保存在一个私有变量中,并在后续 Paint 事件中将新值与旧值进行比较。
{
/* Add a button to top left corner of the
* scrollable area, allowing for the offset. */
panel1.AutoScroll = true;
Button myButton = new Button();
myButton.Location = new Point(
0 + panel1.AutoScrollPosition.X,
0 + panel1.AutoScrollPosition.Y);
panel1.Controls.Add(myButton);
}