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. この例は、にを持つを含むがあることを前提として記述されてい 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} を返します。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.