AccessibleObject.Bounds Property
Gets the location and size of the accessible object.
Assembly: System.Windows.Forms (in System.Windows.Forms.dll)
Exception | Condition |
---|---|
COMException | The bounds of control cannot be retrieved. |
The Bounds property retrieves the object's bounding rectangle in screen coordinates. If the object has a nonrectangular shape, then this property represents the smallest rectangle that completely encompasses the entire object region. Therefore, for nonrectangular objects such as list view items, the coordinates of the object's bounding rectangle can fail, if tested, by calling the HitTest method, because HitTest determines the object's boundaries on a pixel-by-pixel basis.
Notes to InheritorsThe default implementation returns the accessible object's bounding rectangle if the object wraps a system control; otherwise, it returns Rectangle.Empty. All visible accessible objects must support this method. Sound objects do not support this method.
The following example demonstrates the creation of an accessibility-aware chart control, using the AccessibleObject and Control.ControlAccessibleObject classes to expose accessible information. The control plots two curves along with a legend. The ChartControlAccessibleObject class, which derives from ControlAccessibleObject, is used in the CreateAccessibilityInstance method to provide custom accessible information for the chart control. Since the chart legend is not an actual Control -based control, but instead is drawn by the chart control, it does not have any built-in accessible information. Because of this, the ChartControlAccessibleObject class overrides the GetChild method to return the CurveLegendAccessibleObject that represents accessible information for each part of the legend. When an accessible-aware application uses this control, the control can provide the necessary accessible information.
This code excerpt demonstrates overriding the Bounds property. See the AccessibleObject class overview for the complete code example.
' Inner class CurveLegendAccessibleObject represents accessible information ' associated with the CurveLegend object. Public Class CurveLegendAccessibleObject Inherits AccessibleObject Private curveLegend As CurveLegend Public Sub New(curveLegend As CurveLegend) Me.curveLegend = curveLegend End Sub 'New ' Private property that helps get the reference to the parent ChartControl. Private ReadOnly Property ChartControl() As ChartControlAccessibleObject Get Return CType(Parent, ChartControlAccessibleObject) End Get End Property ' Friend helper function that returns the ID for this CurveLegend. Friend ReadOnly Property ID() As Integer Get Dim i As Integer For i = 0 To (ChartControl.GetChildCount()) - 1 If ChartControl.GetChild(i) Is Me Then Return i End If Next i Return - 1 End Get End Property ' Gets the Bounds for the CurveLegend. This is used by accessibility programs. Public Overrides ReadOnly Property Bounds() As Rectangle Get ' The bounds is in screen coordinates. Dim loc As Point = curveLegend.Location Return New Rectangle(curveLegend.chart.PointToScreen(loc), curveLegend.Size) End Get End Property ' Gets or sets the Name for the CurveLegend. This is used by accessibility programs. Public Overrides Property Name() As String Get Return curveLegend.Name End Get Set curveLegend.Name = value End Set End Property ' Gets the Curve Legend Parent's Accessible object. ' This is used by accessibility programs. Public Overrides ReadOnly Property Parent() As AccessibleObject Get Return curveLegend.chart.AccessibilityObject End Get End Property ' Gets the role for the CurveLegend. This is used by accessibility programs. Public Overrides ReadOnly Property Role() As AccessibleRole Get Return System.Windows.Forms.AccessibleRole.StaticText End Get End Property ' Gets the state based on the selection for the CurveLegend. ' This is used by accessibility programs. Public Overrides ReadOnly Property State() As AccessibleStates Get Dim stateTemp As AccessibleStates = AccessibleStates.Selectable If curveLegend.Selected Then stateTemp = stateTemp Or AccessibleStates.Selected End If Return stateTemp End Get End Property ' Navigates through siblings of this CurveLegend. This is used by accessibility programs. Public Overrides Function Navigate(navdir As AccessibleNavigation) As AccessibleObject ' Use the Friend NavigateFromChild helper function that exists ' on ChartControlAccessibleObject. Return ChartControl.NavigateFromChild(Me, navdir) End Function ' Selects or unselects this CurveLegend. This is used by accessibility programs. Public Overrides Sub [Select](selection As AccessibleSelection) ' Use the internal SelectChild helper function that exists ' on ChartControlAccessibleObject. ChartControl.SelectChild(Me, selection) End Sub End Class 'CurveLegendAccessibleObject
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.