# C1.Win.FlexGrid.Util.BaseControls.ScrollableControl

## Content

<div class="doc-site-dotnet-api-container">



  <h1 id="C1_Win_FlexGrid_Util_BaseControls_ScrollableControl" data-uid="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl" class="text-break">ScrollableControl Class
</h1>
  <div class="markdown level0 summary"><p>Base class for controls that support auto-scrolling behavior.</p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="inheritance">
    <h5>Inheritance</h5>
    <div class="level0"><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
    <div class="level1"><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.marshalbyrefobject">MarshalByRefObject</a></div>
    <div class="level2"><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.componentmodel.component">Component</a></div>
    <div class="level3"><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.windows.forms.control">Control</a></div>
    <div class="level4"><span class="xref">ScrollableControl</span></div>
      <div class="level5"><a class="xref" href="C1.Win.FlexGrid.C1FlexGridBase.html">C1FlexGridBase</a></div>
  </div>
  <div class="implements">
    <h5>Implements</h5>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.windows.forms.idroptarget">IDropTarget</a></div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.componentmodel.isynchronizeinvoke">ISynchronizeInvoke</a></div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.windows.forms.iwin32window">IWin32Window</a></div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.windows.forms.ibindablecomponent">IBindableComponent</a></div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.componentmodel.icomponent">IComponent</a></div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.idisposable">IDisposable</a></div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="C1.Win.FlexGrid.Util.BaseControls.html">C1.Win.FlexGrid.Util.BaseControls</a></h6>
  <h6><strong>Assembly</strong>: C1.Win.FlexGrid.10.dll</h6>
  <h5 id="C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public abstract class ScrollableControl : Control, IDropTarget, ISynchronizeInvoke, IWin32Window, IBindableComponent, IComponent, IDisposable</code></pre>
  </div>
  <div class="codewrapper">
    <pre><code class="lang-vbnet hljs">Public MustInherit Class ScrollableControl
    Inherits Control
    Implements IDropTarget, ISynchronizeInvoke, IWin32Window, IBindableComponent, IComponent, IDisposable</code></pre>
  </div>
  <h5 id="C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_remarks"><strong>Remarks</strong></h5>
  <div class="markdown level0 remarks"><p>This class is similar to <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.windows.forms.scrollablecontrol">ScrollableControl</a>, but provides
extra customization, better scroll notification, and support for scroll tracking.</p>
</div>
  <h3 id="constructors">Constructors
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_Win_FlexGrid_Util_BaseControls_ScrollableControl__ctor" data-uid="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.#ctor">
          <a class="xref" href="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.-ctor.html#C1_Win_FlexGrid_Util_BaseControls_ScrollableControl__ctor">ScrollableControl()</a>
        </td>
        <td class="markdown level1 summary"><p>Creates a new instance of a <a class="xref" href="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.html">ScrollableControl</a> class.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="properties">Properties
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_BorderStyle" data-uid="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.BorderStyle">
          <a class="xref" href="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.BorderStyle.html#C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_BorderStyle">BorderStyle</a>
        </td>
        <td class="markdown level1 summary"><p>Gets or sets the type of border around the control.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_ScrollBars" data-uid="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.ScrollBars">
          <a class="xref" href="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.ScrollBars.html#C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_ScrollBars">ScrollBars</a>
        </td>
        <td class="markdown level1 summary"><p>Gets or sets which scroll bars should appear on the control.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_ScrollBarsVisible" data-uid="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.ScrollBarsVisible">
          <a class="xref" href="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.ScrollBarsVisible.html#C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_ScrollBarsVisible">ScrollBarsVisible</a>
        </td>
        <td class="markdown level1 summary"><p>Gets a <a class="xref" href="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.ScrollBars.html#C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_ScrollBars">ScrollBars</a> value that indicates which scrollbars are currently visible.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_ScrollPosition" data-uid="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.ScrollPosition">
          <a class="xref" href="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.ScrollPosition.html#C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_ScrollPosition">ScrollPosition</a>
        </td>
        <td class="markdown level1 summary"><p>Gets or sets the location of the auto-scroll position.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_ScrollableRectangle" data-uid="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.ScrollableRectangle">
          <a class="xref" href="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.ScrollableRectangle.html#C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_ScrollableRectangle">ScrollableRectangle</a>
        </td>
        <td class="markdown level1 summary"><p>Gets a rectangle that defines the scrollable portion of the control.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_VerticalScrollBarIsVisible" data-uid="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.VerticalScrollBarIsVisible">
          <a class="xref" href="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.VerticalScrollBarIsVisible.html#C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_VerticalScrollBarIsVisible">VerticalScrollBarIsVisible</a>
        </td>
        <td class="markdown level1 summary"><p>Gets the state of vertical scrollbar.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="methods">Methods
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_BeginUpdate" data-uid="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.BeginUpdate">
          <a class="xref" href="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.BeginUpdate.html#C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_BeginUpdate">BeginUpdate()</a>
        </td>
        <td class="markdown level1 summary"><p>Maintains performance by preventing the control from updating itself until
the <a class="xref" href="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.EndUpdate.html#C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_EndUpdate">EndUpdate()</a> method is called.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_BuildScrollableRectangle_System_Int32_System_Int32_" data-uid="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.BuildScrollableRectangle(System.Int32,System.Int32)">
          <a class="xref" href="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.BuildScrollableRectangle.html#C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_BuildScrollableRectangle_System_Int32_System_Int32_">BuildScrollableRectangle(int, int)</a>
        </td>
        <td class="markdown level1 summary"><p>Builds a rectangle that defines the scrollable portion of the control for a given pair of scroll offsets.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_DeferUpdate" data-uid="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.DeferUpdate">
          <a class="xref" href="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.DeferUpdate.html#C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_DeferUpdate">DeferUpdate()</a>
        </td>
        <td class="markdown level1 summary"><p>Suspends notifications until the returned <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.idisposable">IDisposable</a>
object is disposed.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_EndUpdate" data-uid="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.EndUpdate">
          <a class="xref" href="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.EndUpdate.html#C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_EndUpdate">EndUpdate()</a>
        </td>
        <td class="markdown level1 summary"><p>Resumes updating the control after calls to the <a class="xref" href="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.BeginUpdate.html#C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_BeginUpdate">BeginUpdate()</a> method.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_OnChangeScrollBarPosition_System_Int32_System_Boolean_System_Int32_System_Int32_" data-uid="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.OnChangeScrollBarPosition(System.Int32,System.Boolean,System.Int32,System.Int32)">
          <a class="xref" href="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.OnChangeScrollBarPosition.html#C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_OnChangeScrollBarPosition_System_Int32_System_Boolean_System_Int32_System_Int32_">OnChangeScrollBarPosition(int, bool, int, int)</a>
        </td>
        <td class="markdown level1 summary"><p>Calculates the new position of a scrollbar in response to a user command.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_OnClientSizeChanged_System_EventArgs_" data-uid="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.OnClientSizeChanged(System.EventArgs)">
          <a class="xref" href="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.OnClientSizeChanged.html#C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_OnClientSizeChanged_System_EventArgs_">OnClientSizeChanged(EventArgs)</a>
        </td>
        <td class="markdown level1 summary"><p>Raises the <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.windows.forms.control.clientsizechanged">ClientSizeChanged</a> event.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_OnHandleCreated_System_EventArgs_" data-uid="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.OnHandleCreated(System.EventArgs)">
          <a class="xref" href="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.OnHandleCreated.html#C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_OnHandleCreated_System_EventArgs_">OnHandleCreated(EventArgs)</a>
        </td>
        <td class="markdown level1 summary"><p>Raises the <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.windows.forms.control.handlecreated">HandleCreated</a> event.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_OnImeStartComposition" data-uid="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.OnImeStartComposition">
          <a class="xref" href="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.OnImeStartComposition.html#C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_OnImeStartComposition">OnImeStartComposition()</a>
        </td>
        <td class="markdown level1 summary"><p>Called when the control receives a WM_IME_STARTCOMPOSITION message.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_OnMouseWheel_System_Windows_Forms_MouseEventArgs_" data-uid="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.OnMouseWheel(System.Windows.Forms.MouseEventArgs)">
          <a class="xref" href="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.OnMouseWheel.html#C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_OnMouseWheel_System_Windows_Forms_MouseEventArgs_">OnMouseWheel(MouseEventArgs)</a>
        </td>
        <td class="markdown level1 summary"><p>Raises the <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.windows.forms.control.mousewheel">MouseWheel</a> event.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_OnScroll_System_Windows_Forms_ScrollBars_" data-uid="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.OnScroll(System.Windows.Forms.ScrollBars)">
          <a class="xref" href="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.OnScroll.html#C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_OnScroll_System_Windows_Forms_ScrollBars_">OnScroll(ScrollBars)</a>
        </td>
        <td class="markdown level1 summary"><p>Called after the control scrolls (see the <a class="xref" href="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.ScrollPosition.html#C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_ScrollPosition">ScrollPosition</a> property).</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_OnScrollTip_System_Int32_" data-uid="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.OnScrollTip(System.Int32)">
          <a class="xref" href="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.OnScrollTip.html#C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_OnScrollTip_System_Int32_">OnScrollTip(int)</a>
        </td>
        <td class="markdown level1 summary"><p>Called before the controls displays a scroll tip.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_OnSizeChanged_System_EventArgs_" data-uid="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.OnSizeChanged(System.EventArgs)">
          <a class="xref" href="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.OnSizeChanged.html#C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_OnSizeChanged_System_EventArgs_">OnSizeChanged(EventArgs)</a>
        </td>
        <td class="markdown level1 summary"><p>Raises the <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.windows.forms.control.sizechanged">SizeChanged</a> event.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_OnThemeChanged" data-uid="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.OnThemeChanged">
          <a class="xref" href="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.OnThemeChanged.html#C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_OnThemeChanged">OnThemeChanged()</a>
        </td>
        <td class="markdown level1 summary"><p>Called when the control receives a WM_THEMECHANGED message.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_UpdateScrollPosition" data-uid="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.UpdateScrollPosition">
          <a class="xref" href="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.UpdateScrollPosition.html#C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_UpdateScrollPosition">UpdateScrollPosition()</a>
        </td>
        <td class="markdown level1 summary"><p>Updates position of the scrollbar.</p>
</td>
      </tr>
    </tbody>
  </table>

</div>
