次の方法で共有


ScrollableControl.AutoScrollMargin プロパティ

定義

自動スクロールのマージンのサイズを取得または設定します。

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

プロパティ値

Size

自動スクロールのマージンの高さと幅をピクセル単位で表す Size

例外

代入された Height または Width の値が 0 未満です。

次のコード例では、 Panel派生クラスを使用します。 この例では、テキスト ボックスの場所を評価し、その親コンテナーであるパネル コントロールの外観と動作を変更します。 この例では、TextBoxButtonコントロールのPanelインスタンスを作成している必要があります。 パネルの端の少なくとも 1 つに重なるように、テキスト ボックスをパネルに配置します。 ボタンのクリックでこの関数を呼び出して、パネルの動作と外観の違いを確認します。

void SetAutoScrollMargins()
{
   /* If the text box is outside the panel's bounds, 
          turn on auto-scrolling and set the margin. */
   if ( text1->Location.X > panel1->Location.X || text1->Location.Y > panel1->Location.Y )
   {
      panel1->AutoScroll = true;

      /* If the AutoScrollMargin is set to less 
                than (5,5), set it to 5,5. */
      if ( panel1->AutoScrollMargin.Width < 5 || panel1->AutoScrollMargin.Height < 5 )
      {
         panel1->SetAutoScrollMargin( 5, 5 );
      }
   }
}
private void SetAutoScrollMargins()
 {
    /* If the text box is outside the panel's bounds, 
       turn on auto-scrolling and set the margin. */  
    if (text1.Location.X > panel1.Location.X || 
       text1.Location.Y > panel1.Location.Y)
    {
       panel1.AutoScroll = true;
       /* If the AutoScrollMargin is set to less 
          than (5,5), set it to 5,5. */
       if( panel1.AutoScrollMargin.Width < 5 || 
          panel1.AutoScrollMargin.Height < 5)
       {
          panel1.SetAutoScrollMargin(5, 5);
       }
    }
 }
Private Sub SetAutoScrollMargins()
    ' If the text box is outside the panel's bounds,
    ' turn on auto-scrolling and set the margin. 
    If (text1.Location.X > panel1.Location.X) Or _
        (text1.Location.Y > panel1.Location.Y) Then
        panel1.AutoScroll = True
        ' If the AutoScrollMargin is set to less
        ' than (5,5), set it to 5,5. 
        If (panel1.AutoScrollMargin.Width < 5) Or _
            (panel1.AutoScrollMargin.Height < 5) Then
            
            panel1.SetAutoScrollMargin(5, 5)
        End If
    End If
End Sub

注釈

自動スクロールの余白は、すべての子コントロールとスクロール可能な親コントロールの端との間の距離です。 スクロール AutoScrollMargin バーが必要かどうかを判断するために、スクロール可能なコントロールに含まれる子コントロールのサイズにサイズが追加されます。 このプロパティは AutoScrollMargin 、親スクロール可能コントロールのサイズが変更されたとき、または個々の子コントロールが表示されるときに評価され、スクロール バーを表示する必要があるかどうかを判断するために使用されます。 ドッキングされたコントロールは、スクロール バーを表示する必要があるかどうかを決定する計算から除外されます。

注意

ドッキングされたコントロールの Dock プロパティが設定 DockStyle.Fillされている場合、コントロールは親のスクロール可能なコントロールに入力し、ドッキングされたコントロールは、スクロール バーが必要かどうかを判断するときに無視されます AutoScrollMargin

子コントロールの端から親スクロール可能なコントロールまでの距離が、プロパティに AutoScrollMargin 割り当てられた値より小さく、 AutoScroll プロパティが設定 trueされている場合は、適切なスクロール バーが表示されます。

注意

スクロール可能なコントロール内にコントロールをドッキングする場合は、スクロールが必要になる可能性がある他のコントロールを含めるために、子スクロール可能なコントロール (a など Panel) を追加することをお勧めします。 スクロール可能なコントロールに子Panelコントロールを追加し、そのプロパティをDock設定し、そのAutoScrollプロパティを DockStyle.Fill .true 親スクロール可能なコントロールのプロパティを次に設定 AutoScroll する false必要があります。

適用対象

こちらもご覧ください