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



自動スクロールの位置をピクセル単位で表す PointA 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. この例は、Button を持つ Panel を含む Form があることを前提として記述されています。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.


コントロールが開始位置から (0, 0) 移動した場合、取得された X および Y 座標値は負になります。The X and Y coordinate values retrieved are negative if the control has scrolled away from its starting position (0,0). このプロパティを設定する場合は、常に正の XY 値を割り当てて、開始位置を基準としてスクロール位置を設定する必要があります。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}; を返します。2番目のケースでは、{-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.