ScrollPattern.Scroll Method (ScrollAmount, ScrollAmount)

 
System_CAPS_noteNote

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Scrolls the visible region of the content area horizontally and vertically.

Namespace:   System.Windows.Automation
Assembly:  UIAutomationClient (in UIAutomationClient.dll)

Public Sub Scroll (
	horizontalAmount As ScrollAmount,
	verticalAmount As ScrollAmount
)

Parameters

horizontalAmount
Type: System.Windows.Automation.ScrollAmount

The horizontal increment specific to the control. NoScroll should be passed in if the control cannot be scrolled in this direction.

verticalAmount
Type: System.Windows.Automation.ScrollAmount

The vertical increment specific to the control. NoScroll should be passed in if the control cannot be scrolled in this direction.

Exception Condition
ArgumentException

A control supports SmallIncrement values exclusively for horizontal or vertical scrolling but a LargeIncrement value is passed in.

InvalidOperationException

An attempt is made to scroll in an unsupported direction.

In the following example, a ScrollPatterncontrol pattern is obtained from an AutomationElement and is then used to scroll the element a requested amount either horizontally or vertically.

'''--------------------------------------------------------------------
''' <summary>
''' Obtains a ScrollPattern control pattern from an 
''' automation element.
''' </summary>
''' <param name="targetControl">
''' The automation element of interest.
''' </param>
''' <returns>
''' A ScrollPattern object.
''' </returns>
'''--------------------------------------------------------------------
Private Function GetScrollPattern( _
ByVal targetControl As AutomationElement) As ScrollPattern
    Dim scrollPattern As ScrollPattern = Nothing

    Try
        scrollPattern = DirectCast( _
        targetControl.GetCurrentPattern(scrollPattern.Pattern), _
        ScrollPattern)
    Catch
        ' Object doesn't support the ScrollPattern control pattern
        Return Nothing
    End Try

    Return scrollPattern

End Function 'GetScrollPattern
'''--------------------------------------------------------------------
''' <summary>
''' Obtains a ScrollPattern control pattern from an automation 
''' element and attempts to scroll the requested amounts.
''' </summary>
''' <param name="targetControl">
''' The automation element of interest.
''' </param>
''' <param name="hScrollAmount">
''' The requested horizontal scroll amount.
''' </param>
''' <param name="vScrollAmount">
''' The requested vertical scroll amount.
''' </param>
'''--------------------------------------------------------------------
Private Sub ScrollElement( _
ByVal targetControl As AutomationElement, _
ByVal hScrollAmount As ScrollAmount, _
ByVal vScrollAmount As ScrollAmount)
    If targetControl Is Nothing Then
        Throw New ArgumentNullException( _
        "AutomationElement argument cannot be null.")
    End If

    Dim scrollPattern As ScrollPattern = GetScrollPattern(targetControl)

    If scrollPattern Is Nothing Then
        Return
    End If

    Try
        scrollPattern.Scroll(hScrollAmount, vScrollAmount)
    Catch exc As InvalidOperationException
        ' Control not able to scroll in the direction requested;
        ' when scrollable property of that direction is False
        ' TO DO: error handling.
    Catch exc As ArgumentException
        ' If a control supports SmallIncrement values exclusively 
        ' for horizontal or vertical scrolling but a LargeIncrement 
        ' value (NaN if not supported) is passed in.
        ' TO DO: error handling.
    End Try

End Sub 'ScrollElement

.NET Framework
Available since 3.0
Return to top
Show: