移动Panel的滚动条到窗口中间

本文介绍了在C#中如何使Panel的滚动条在窗口首次显示时自动移动到中间位置。通过调整AutoScrollPosition属性,计算DisplayRectangle和ClientSize的差值的一半,实现滚动条的居中。然而,当窗口内有多个可获取焦点的控件时,滚动条可能复位,后续文章将探讨如何解决这一问题。
摘要由CSDN通过智能技术生成

一个组态软件项目,其中一个用来组态图形页的视图窗口需要实现这样一个功能:在该窗口第一次被显示出来时,要求滚动条移动到中间位置。

 

按照软件的设计结构,只要移动一个Panel的滚动条即可。

 

要移动滚动条,只要改变Panel的AutoScrollPosition属性即可。

 

那么,现在的问题是,怎么确定中间位置?

 

AutoScrollPosition的值是一个Point,那么,现在的问题就是想办法计算出该Point的X和Y值。这才是难点所在。

 

要说明这个问题,我这里不得不啰嗦啰嗦C#中窗口的滚动条管理机制。

 

对于一个拥有滚动条的窗口,该窗口的DisplayRectangle属性将被启用,DisplayRectangle描述了该窗口的“虚拟显示区”,也就是通过移动滚动条可以看到的窗口的最大绘图区。用户实时能够看到的那一块区域(实际显示区),使用窗口的Size属性(我们这里只在客户区绘图,所以用它的ClientSize属性)来给出(宽度CX和高度CY)。如下图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值