ScrollableControl.AutoScrollPosition 属性


获取或设置自动滚动定位的位置。Gets or sets the location of the auto-scroll position.

 property System::Drawing::Point AutoScrollPosition { System::Drawing::Point get(); void set(System::Drawing::Point value); };
public System.Drawing.Point AutoScrollPosition { get; set; }
member this.AutoScrollPosition : System.Drawing.Point with get, set
Public Property AutoScrollPosition As Point


表示自动滚动位置的 Point,单位为像素。A Point that represents the auto-scroll position in pixels.



下面的代码示例使用ScrollableControl派生类Panel ,并向可滚动区域的左上角添加一个按钮。The following code example uses the ScrollableControl derived class Panel and adds a button to the upper left corner of the scrollable area. 该示例允许由确定AutoScrollPosition的偏移量。The example allows for the offset determined by the AutoScrollPosition. 该示例是在假设您具有Form一个Panel包含的,其中包含Button一个的。The example was written under the assumption that you have a Form that contains a Panel with a Button on it. 若要启用自动滚动,请将按钮置于的工作区Panel之外。To enable auto-scrolling, place the button outside of the client area of the Panel.

   void button1_Click( Object^ /*sender*/, EventArgs^ /*e*/ )
      /* Add a button to top left corner of the
            * scrollable area, allowing for the offset. */
      panel1->AutoScroll = true;
      Button^ myButton = gcnew Button;
      myButton->Location = Point(0 + panel1->AutoScrollPosition.X,0 + panel1->AutoScrollPosition.Y);
      panel1->Controls->Add( myButton );
private void button1_Click(object sender, EventArgs e)
   /* 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);
Private Sub button1_Click(sender As Object, _
   e As EventArgs) Handles button1.Click
   ' Add a button to top left corner of the 
   ' scrollable area, allowing for the offset. 
   panel1.AutoScroll = True
   Dim myButton As New Button()
   myButton.Location = New Point( _
      0 + panel1.AutoScrollPosition.X, _
      0 + panel1.AutoScrollPosition.Y)
End Sub


AutoScrollPosition属性表示可滚动控件的可见部分的位置。The AutoScrollPosition property represents the location of the visible portion of a scrollable control. 使用此属性可更改显示的控件部分。Use this property to change the portion of the control that is displayed.

以编程方式将控件添加到窗体时AutoScrollPosition ,可以使用属性将控件放置在当前可查看滚动区域的内部或外部。When adding controls programmatically to a form, use the AutoScrollPosition property to position the control either inside or outside of the current viewable scroll area.


如果X控件Y已从其开始位置(0,0)滚动,则检索到的坐标值为负。The X and Y coordinate values retrieved are negative if the control has scrolled away from its starting position (0,0). 设置此属性时,必须始终指定正值X ,并Y将滚动位置设置为相对于起始位置。When you set this property, you must always assign positive X and Y values to set the scroll position relative to the starting position. 例如,如果有水平滚动条并将 x 和 y 设置为200,则会将滚动200像素向右移动;如果随后将 x 和 y 设置为100,则滚动将向左滚动100像素,因为你将其设置为100像素,远离起始位置。For example, if you have a horizontal scroll bar and you set x and y to 200, you move the scroll 200 pixels to the right; if you then set x and y to 100, the scroll appears to jump the left by 100 pixels, because you are setting it 100 pixels away from the starting position. 在第一种情况AutoScrollPosition下,将返回 {-200,0}; 在第二种{-100,0}情况下,它将返回。In the first case, AutoScrollPosition returns {-200, 0}; in the second case, it returns {-100,0}.

若要在AutoScrollPosition发生更改时进行检测,请为Paint事件创建一个事件处理程序,将旧的位置值保存在私有变量中,并将新值与Paint后续事件中的旧值进行比较。To detect when AutoScrollPosition changes, create an event handler for the Paint event, save the old position value in a private variable, and compare the new value to the old value on subsequent Paint events.