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

## Content

<div class="doc-site-dotnet-api-container">



<h1 id="C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_ScrollPosition_" data-uid="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.ScrollPosition*">ScrollPosition Property
</h1>
<div class="markdown level0 summary"></div>
<div class="markdown level0 conceptual"></div>



<a id="C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_ScrollPosition_" data-uid="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.ScrollPosition*"></a>
<h4 id="C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_ScrollPosition" data-uid="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.ScrollPosition">ScrollPosition</h4>
<div class="markdown level1 summary"><p>Gets or sets the location of the auto-scroll position.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="declaration">Declaration</h5>
<div class="codewrapper">
  <pre><code class="lang-csharp hljs">[Browsable(false)]
public Point ScrollPosition { get; set; }</code></pre>
</div>
<div class="codewrapper">
  <pre><code class="lang-vbnet hljs">&lt;Browsable(False)&gt;
Public Property ScrollPosition As Point</code></pre>
</div>
<h5 id="C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_ScrollPosition_remarks">Remarks</h5>
<div class="markdown level1 remarks"><p>Use the <a class="xref" href="C1.Win.FlexGrid.Util.BaseControls.ScrollableControl.ScrollPosition.html#C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_ScrollPosition">ScrollPosition</a> property to get or set the scroll position using pixel coordinates.</p>
<p>Use the <a class="xref" href="C1.Win.FlexGrid.C1FlexGridBase.TopRow.html#C1_Win_FlexGrid_C1FlexGridBase_TopRow">TopRow</a> and <a class="xref" href="C1.Win.FlexGrid.C1FlexGridBase.LeftCol.html#C1_Win_FlexGrid_C1FlexGridBase_LeftCol">LeftCol</a> properties to get or 
set the scroll position using cell coordinates.</p>
</div>
<h5 id="C1_Win_FlexGrid_Util_BaseControls_ScrollableControl_ScrollPosition_examples">Examples</h5>
<p>This code binds two grids (_flexLeft and _flexRight) together and synchronizes their scrolling in the vertical
direction (the user can scroll the grids independently in the horizontal direction).</p>
<pre><code class="lang-csharp">// bind grids together
_flexRight.DataSource = _flexLeft;
_flexLeft.ScrollBars = ScrollBars.Horizontal;

// synchronize vertical scrolling 
// (this handles the AfterScroll event for both grids)
void flex_AfterScroll(object sender, C1.Win.FlexGrid.RangeEventArgs e)
{
    // update sender grid (could be _flexLeft or _flexRight)
    C1FlexGrid.C1FlexGrid src = ((C1FlexGrid)sender);
    src.Update();

    // get new vertical position from sender grid
    int y = src.ScrollPosition.Y;

    // apply new vertical position to the other grid
    if (src.Equals == _flexLeft)
    {
        _flexRight.ScrollPosition = new Point(_flexRight.ScrollPosition.X, y);
    }
    else
    {
        _flexLeft.ScrollPosition = new Point(_flexLeft.ScrollPosition.X, y);
    }
}</code></pre>

</div>
