Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
2353 lines (2185 sloc) 179 KB
<Type Name="AccessibleObject" FullName="System.Windows.Forms.AccessibleObject">
<TypeSignature Language="C#" Value="public class AccessibleObject : System.Runtime.InteropServices.StandardOleMarshalObject, Accessibility.IAccessible, System.Reflection.IReflect" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit AccessibleObject extends System.Runtime.InteropServices.StandardOleMarshalObject implements class Accessibility.IAccessible, class System.Reflection.IReflect" />
<TypeSignature Language="DocId" Value="T:System.Windows.Forms.AccessibleObject" />
<TypeSignature Language="VB.NET" Value="Public Class AccessibleObject&#xA;Inherits StandardOleMarshalObject&#xA;Implements IAccessible, IReflect" />
<TypeSignature Language="C++ CLI" Value="public ref class AccessibleObject : System::Runtime::InteropServices::StandardOleMarshalObject, Accessibility::IAccessible, System::Reflection::IReflect" />
<TypeSignature Language="F#" Value="type AccessibleObject = class&#xA; inherit StandardOleMarshalObject&#xA; interface IReflect&#xA; interface IAccessible" />
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.Runtime.InteropServices.StandardOleMarshalObject</BaseTypeName>
<BaseTypeName FrameworkAlternate="netframework-1.1">System.MarshalByRefObject</BaseTypeName>
</Base>
<Interfaces>
<Interface>
<InterfaceName>Accessibility.IAccessible</InterfaceName>
</Interface>
<Interface>
<InterfaceName>System.Reflection.IReflect</InterfaceName>
</Interface>
</Interfaces>
<Attributes>
<Attribute FrameworkAlternate="netframework-1.1;netframework-2.0;netframework-3.0;netframework-3.5;netframework-4.0;netframework-4.5;netframework-4.5.1;netframework-4.5.2;netframework-4.6;netframework-4.6.1;netframework-4.6.2;netframework-4.7;netframework-4.7.1;netframework-4.7.2;netframework-4.8;netcore-3.0">
<AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName>
</Attribute>
</Attributes>
<Docs>
<summary>Provides information that accessibility applications use to adjust an application's user interface (UI) for users with impairments.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
Accessibility applications can adjust features of the application to improve usability for users with disabilities.
For users who are visually impaired, you can adjust software and operating system features to comply with their needs. For example, you can enlarge text and images and render them with a contrast. In addition, you can accommodate color-blindness with the appropriate use of colors. For users who are severely visually impaired, computers are accessible with screen review aids that translate on-screen text to speech or to a dynamic, refreshable, Braille display.
For users who are hard of hearing, you can design programs that use visual cues, such as a flashing toolbar; or you can display spoken messages as text. For example, when turned on, the `SoundSentry` feature, an accessibility option in Control Panel, provides a visual warning whenever the system makes an alarm sound.
For users with motion disabilities, you can design controls that refine or eliminate keyboard and mouse use, thereby improving computer accessibility. Control Panel offers assistance. For example, one alternative is to use the numeric keypad instead of the mouse for navigation. Another option, called `StickyKeys`, enables users who cannot hold down two or more keys at a time (such as CTRL+P) to get the same result by typing one key at a time.
For users with cognitive and language disabilities, you can design software programs to better accommodate their needs. For example, using conspicuous or cued sequencing, uncomplicated displays, fewer words, and a reading level targeted to elementary school standards can benefit these users.
For users with seizure disorders, you can design software programs to eliminate seizure provoking patterns.
For more information about accessibility, including information about accessibility applications, see the documentation for Microsoft Accessibility in the MSDN library or at the Microsoft Web site.
> [!NOTE]
> To use the <xref:System.Windows.Forms.AccessibleObject>, you must add a reference to the `Accessibility` assembly installed with the [!INCLUDE[dnprdnshort](~/includes/dnprdnshort-md.md)]. Windows Forms only supports Active Accessibility 2.0.
## Examples
The following code example demonstrates the creation of an accessibility-aware chart control, using the <xref:System.Windows.Forms.AccessibleObject> and <xref:System.Windows.Forms.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 <xref:System.Windows.Forms.Control.CreateAccessibilityInstance%2A> method to provide custom accessible information for the chart control. Because the chart legend is not an actual <xref:System.Windows.Forms.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 <xref:System.Windows.Forms.AccessibleObject.GetChild%2A> 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.
[!code-cpp[System.Windows.Forms.AccessibleObject#1](~/samples/snippets/cpp/VS_Snippets_Winforms/System.Windows.Forms.AccessibleObject/CPP/chartcontrol.cpp#1)]
[!code-csharp[System.Windows.Forms.AccessibleObject#1](~/samples/snippets/csharp/VS_Snippets_Winforms/System.Windows.Forms.AccessibleObject/CS/chartcontrol.cs#1)]
[!code-vb[System.Windows.Forms.AccessibleObject#1](~/samples/snippets/visualbasic/VS_Snippets_Winforms/System.Windows.Forms.AccessibleObject/VB/chartcontrol.vb#1)]
]]></format>
</remarks>
<block subset="none" type="overrides">
<para>When you inherit from this class, you can override all the members.</para>
</block>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public AccessibleObject ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.#ctor" />
<MemberSignature Language="VB.NET" Value="Public Sub New ()" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; AccessibleObject();" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters />
<Docs>
<summary>Initializes a new instance of the <see cref="T:System.Windows.Forms.AccessibleObject" /> class.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
Typically, when you use this method to create an accessible object, you are providing your own implementations of the properties and methods of the class to provide functionality specific to your application.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="Accessibility.IAccessible.accChildCount">
<MemberSignature Language="C#" Value="int Accessibility.IAccessible.accChildCount { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance int32 Accessibility.IAccessible.accChildCount" />
<MemberSignature Language="DocId" Value="P:System.Windows.Forms.AccessibleObject.Accessibility#IAccessible#accChildCount" />
<MemberSignature Language="VB.NET" Value=" ReadOnly Property accChildCount As Integer Implements IAccessible.accChildCount" />
<MemberSignature Language="C++ CLI" Value="property int Accessibility::IAccessible::accChildCount { int get(); };" />
<MemberSignature Language="F#" Usage="Accessibility.IAccessible.accChildCount" />
<MemberType>Property</MemberType>
<Implements>
<InterfaceMember>P:Accessibility.IAccessible.accChildCount</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the number of child interfaces that belong to this object. For a description of this member, see <see cref="P:Accessibility.IAccessible.accChildCount" />.</summary>
<value>The number of child accessible objects that belong to this object. If the object has no child objects, this value is 0.</value>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
This member is an explicit interface member implementation. It can be used only when the <xref:System.Windows.Forms.AccessibleObject> instance is cast to an <xref:Accessibility.IAccessible> interface.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="Accessibility.IAccessible.accDoDefaultAction">
<MemberSignature Language="C#" Value="void IAccessible.accDoDefaultAction (object childID);" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance void Accessibility.IAccessible.accDoDefaultAction(object childID) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.Accessibility#IAccessible#accDoDefaultAction(System.Object)" />
<MemberSignature Language="VB.NET" Value="Sub accDoDefaultAction (childID As Object) Implements IAccessible.accDoDefaultAction" />
<MemberSignature Language="C++ CLI" Value=" virtual void Accessibility.IAccessible.accDoDefaultAction(System::Object ^ childID) = Accessibility::IAccessible::accDoDefaultAction;" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:Accessibility.IAccessible.accDoDefaultAction(System.Object)</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="childID" Type="System.Object" />
</Parameters>
<Docs>
<param name="childID">The child ID in the <see cref="T:Accessibility.IAccessible" /> interface/child ID pair that represents the accessible object.</param>
<summary>Performs the specified object's default action. Not all objects have a default action. For a description of this member, see <see cref="M:Accessibility.IAccessible.accDoDefaultAction(System.Object)" />.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
This member is an explicit interface member implementation. It can be used only when the <xref:System.Windows.Forms.AccessibleObject> instance is cast to an <xref:Accessibility.IAccessible> interface.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="Accessibility.IAccessible.accFocus">
<MemberSignature Language="C#" Value="object Accessibility.IAccessible.accFocus { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance object Accessibility.IAccessible.accFocus" />
<MemberSignature Language="DocId" Value="P:System.Windows.Forms.AccessibleObject.Accessibility#IAccessible#accFocus" />
<MemberSignature Language="VB.NET" Value=" ReadOnly Property accFocus As Object Implements IAccessible.accFocus" />
<MemberSignature Language="C++ CLI" Value="property System::Object ^ Accessibility::IAccessible::accFocus { System::Object ^ get(); };" />
<MemberSignature Language="F#" Usage="Accessibility.IAccessible.accFocus" />
<MemberType>Property</MemberType>
<Implements>
<InterfaceMember>P:Accessibility.IAccessible.accFocus</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Object</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the object that has the keyboard focus. For a description of this member, see <see cref="P:Accessibility.IAccessible.accFocus" />.</summary>
<value>The object that has keyboard focus.</value>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
The return value type of the <xref:System.Windows.Forms.AccessibleObject.Accessibility%23IAccessible%23accFocus%2A> property depends on the object that has keyboard focus. The following table describes the object types that the <xref:System.Windows.Forms.AccessibleObject.Accessibility%23IAccessible%23accFocus%2A> property returns.
|Type|Description|
|----------|-----------------|
|`null`|This object does not have the keyboard focus itself and does not contain a child that has the keyboard focus.|
|integer|0 if the current object has keyboard focus; otherwise, the child ID of the child accessible object with keyboard focus.|
|<xref:Accessibility.IAccessible>|The child accessible object that has the keyboard focus.|
This member is an explicit interface member implementation. It can be used only when the <xref:System.Windows.Forms.AccessibleObject> instance is cast to an <xref:Accessibility.IAccessible> interface.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="Accessibility.IAccessible.accHitTest">
<MemberSignature Language="C#" Value="object IAccessible.accHitTest (int xLeft, int yTop);" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance object Accessibility.IAccessible.accHitTest(int32 xLeft, int32 yTop) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.Accessibility#IAccessible#accHitTest(System.Int32,System.Int32)" />
<MemberSignature Language="VB.NET" Value="Function accHitTest (xLeft As Integer, yTop As Integer) As Object Implements IAccessible.accHitTest" />
<MemberSignature Language="C++ CLI" Value=" virtual System::Object ^ Accessibility.IAccessible.accHitTest(int xLeft, int yTop) = Accessibility::IAccessible::accHitTest;" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:Accessibility.IAccessible.accHitTest(System.Int32,System.Int32)</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Object</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="xLeft" Type="System.Int32" />
<Parameter Name="yTop" Type="System.Int32" />
</Parameters>
<Docs>
<param name="xLeft">The horizontal coordinate.</param>
<param name="yTop">The vertical coordinate.</param>
<summary>Gets the child object at the specified screen coordinates. For a description of this member, see <see cref="M:Accessibility.IAccessible.accHitTest(System.Int32,System.Int32)" />.</summary>
<returns>The accessible object at the point specified by <paramref name="xLeft" /> and <paramref name="yTop" />.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
The following table describes the object types that the <xref:System.Windows.Forms.AccessibleObject.Accessibility%23IAccessible%23accHitTest%2A> method can return.
|Type|Description|
|----------|-----------------|
|<xref:Accessibility.IAccessible>|The accessible object at the specified direction.|
|integer|0 if the point specified is either the current object or outside the object's boundaries; otherwise, the child ID that identifies the accessible object at the specified direction.|
This member is an explicit interface member implementation. It can be used only when the <xref:System.Windows.Forms.AccessibleObject> instance is cast to an <xref:Accessibility.IAccessible> interface.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="Accessibility.IAccessible.accLocation">
<MemberSignature Language="C#" Value="void IAccessible.accLocation (out int pxLeft, out int pyTop, out int pcxWidth, out int pcyHeight, object childID);" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance void Accessibility.IAccessible.accLocation([out] int32&amp; pxLeft, [out] int32&amp; pyTop, [out] int32&amp; pcxWidth, [out] int32&amp; pcyHeight, object childID) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.Accessibility#IAccessible#accLocation(System.Int32@,System.Int32@,System.Int32@,System.Int32@,System.Object)" />
<MemberSignature Language="VB.NET" Value="Sub accLocation (ByRef pxLeft As Integer, ByRef pyTop As Integer, ByRef pcxWidth As Integer, ByRef pcyHeight As Integer, childID As Object) Implements IAccessible.accLocation" />
<MemberSignature Language="C++ CLI" Value=" virtual void Accessibility.IAccessible.accLocation([Runtime::InteropServices::Out] int % pxLeft, [Runtime::InteropServices::Out] int % pyTop, [Runtime::InteropServices::Out] int % pcxWidth, [Runtime::InteropServices::Out] int % pcyHeight, System::Object ^ childID) = Accessibility::IAccessible::accLocation;" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:Accessibility.IAccessible.accLocation(System.Int32@,System.Int32@,System.Int32@,System.Int32@,System.Object)</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="pxLeft" Type="System.Int32" RefType="out" />
<Parameter Name="pyTop" Type="System.Int32" RefType="out" />
<Parameter Name="pcxWidth" Type="System.Int32" RefType="out" />
<Parameter Name="pcyHeight" Type="System.Int32" RefType="out" />
<Parameter Name="childID" Type="System.Object" />
</Parameters>
<Docs>
<param name="pxLeft">When this method returns, contains the x-coordinate of the object's left edge. This parameter is passed uninitialized.</param>
<param name="pyTop">When this method returns, contains the y-coordinate of the object's top edge. This parameter is passed uninitialized.</param>
<param name="pcxWidth">When this method returns, contains the width of the object. This parameter is passed uninitialized.</param>
<param name="pcyHeight">When this method returns, contains the height of the object. This parameter is passed uninitialized.</param>
<param name="childID">The ID number of the accessible object. This parameter is 0 to get the location of the object, or a child ID to get the location of one of the object's child objects.</param>
<summary>Gets the object's current screen location. For a description of this member, see <see cref="M:Accessibility.IAccessible.accLocation(System.Int32@,System.Int32@,System.Int32@,System.Int32@,System.Object)" />.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
This member is an explicit interface member implementation. It can be used only when the <xref:System.Windows.Forms.AccessibleObject> instance is cast to an <xref:Accessibility.IAccessible> interface.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="Accessibility.IAccessible.accNavigate">
<MemberSignature Language="C#" Value="object IAccessible.accNavigate (int navDir, object childID);" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance object Accessibility.IAccessible.accNavigate(int32 navDir, object childID) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.Accessibility#IAccessible#accNavigate(System.Int32,System.Object)" />
<MemberSignature Language="VB.NET" Value="Function accNavigate (navDir As Integer, childID As Object) As Object Implements IAccessible.accNavigate" />
<MemberSignature Language="C++ CLI" Value=" virtual System::Object ^ Accessibility.IAccessible.accNavigate(int navDir, System::Object ^ childID) = Accessibility::IAccessible::accNavigate;" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:Accessibility.IAccessible.accNavigate(System.Int32,System.Object)</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Object</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="navDir" Type="System.Int32" />
<Parameter Name="childID" Type="System.Object" />
</Parameters>
<Docs>
<param name="navDir">One of the <see cref="T:System.Windows.Forms.AccessibleNavigation" /> enumerations that specifies the direction to navigate.</param>
<param name="childID">The ID number of the accessible object. This parameter is 0 to start from the object, or a child ID to start from one of the object's child objects.</param>
<summary>Navigates to an accessible object relative to the current object. For a description of this member, see <see cref="M:Accessibility.IAccessible.accNavigate(System.Int32,System.Object)" />.</summary>
<returns>The accessible object positioned at the value specified by <paramref name="navDir" />.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
The following table describes the object types that the <xref:System.Windows.Forms.AccessibleObject.Accessibility%23IAccessible%23accNavigate%2A> method can return.
|Type|Description|
|----------|-----------------|
|`null`|There is not an accessible object at the specified direction.|
|<xref:Accessibility.IAccessible>|The accessible object at the specified direction.|
|integer|The child ID that identifies the accessible object at the specified direction. Use the parent <xref:Accessibility.IAccessible> and the child ID to access the accessible object.|
This member is an explicit interface member implementation. It can be used only when the <xref:System.Windows.Forms.AccessibleObject> instance is cast to an <xref:Accessibility.IAccessible> interface.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="Accessibility.IAccessible.accParent">
<MemberSignature Language="C#" Value="object Accessibility.IAccessible.accParent { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance object Accessibility.IAccessible.accParent" />
<MemberSignature Language="DocId" Value="P:System.Windows.Forms.AccessibleObject.Accessibility#IAccessible#accParent" />
<MemberSignature Language="VB.NET" Value=" ReadOnly Property accParent As Object Implements IAccessible.accParent" />
<MemberSignature Language="C++ CLI" Value="property System::Object ^ Accessibility::IAccessible::accParent { System::Object ^ get(); };" />
<MemberSignature Language="F#" Usage="Accessibility.IAccessible.accParent" />
<MemberType>Property</MemberType>
<Implements>
<InterfaceMember>P:Accessibility.IAccessible.accParent</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Object</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the parent accessible object of this object. For a description of this member, see <see cref="P:Accessibility.IAccessible.accParent" />.</summary>
<value>An <see cref="T:Accessibility.IAccessible" /> that represents the parent of the accessible object, or <see langword="null" /> if there is no parent object.</value>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
This member is an explicit interface member implementation. It can be used only when the <xref:System.Windows.Forms.AccessibleObject> instance is cast to an <xref:Accessibility.IAccessible> interface.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="Accessibility.IAccessible.accSelect">
<MemberSignature Language="C#" Value="void IAccessible.accSelect (int flagsSelect, object childID);" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance void Accessibility.IAccessible.accSelect(int32 flagsSelect, object childID) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.Accessibility#IAccessible#accSelect(System.Int32,System.Object)" />
<MemberSignature Language="VB.NET" Value="Sub accSelect (flagsSelect As Integer, childID As Object) Implements IAccessible.accSelect" />
<MemberSignature Language="C++ CLI" Value=" virtual void Accessibility.IAccessible.accSelect(int flagsSelect, System::Object ^ childID) = Accessibility::IAccessible::accSelect;" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:Accessibility.IAccessible.accSelect(System.Int32,System.Object)</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="flagsSelect" Type="System.Int32" />
<Parameter Name="childID" Type="System.Object" />
</Parameters>
<Docs>
<param name="flagsSelect">A bitwise combination of the <see cref="T:System.Windows.Forms.AccessibleSelection" /> values.</param>
<param name="childID">The ID number of the accessible object on which to change the selection. This parameter is 0 to select the object, or a child ID to select one of the object's child objects.</param>
<summary>Modifies the selection or moves the keyboard focus of the accessible object. For a description of this member, see <see cref="M:Accessibility.IAccessible.accSelect(System.Int32,System.Object)" />.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
The following describes which <xref:System.Windows.Forms.AccessibleSelection> values to specify when calling `Select` to perform complex selection operations.
|Operation|Flag Combination|
|---------------|----------------------|
|To simulate a click|<xref:System.Windows.Forms.AccessibleSelection.TakeFocus> OR <xref:System.Windows.Forms.AccessibleSelection.TakeSelection>|
|To select a target item by simulating CTRL+click|<xref:System.Windows.Forms.AccessibleSelection.TakeFocus> OR <xref:System.Windows.Forms.AccessibleSelection.AddSelection>|
|To cancel selection of a target item by simulating CTRL+click|<xref:System.Windows.Forms.AccessibleSelection.TakeFocus> OR <xref:System.Windows.Forms.AccessibleSelection.RemoveSelection>|
|To simulate SHIFT+click|<xref:System.Windows.Forms.AccessibleSelection.TakeFocus> OR <xref:System.Windows.Forms.AccessibleSelection.ExtendSelection>|
|To select a range of objects and put focus on the last object|Specify <xref:System.Windows.Forms.AccessibleSelection.TakeFocus> on the starting object to set the selection anchor. Then call Select again and specify <xref:System.Windows.Forms.AccessibleSelection.TakeFocus> OR <xref:System.Windows.Forms.AccessibleSelection.ExtendSelection> on the last object.|
|To deselect all objects|Specify <xref:System.Windows.Forms.AccessibleSelection.TakeSelection> on any object. This flag deselects all selected objects except the one just selected. Then call Select again and specify <xref:System.Windows.Forms.AccessibleSelection.RemoveSelection> on the same object.|
This member is an explicit interface member implementation. It can be used only when the <xref:System.Windows.Forms.AccessibleObject> instance is cast to an <xref:Accessibility.IAccessible> interface.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="Accessibility.IAccessible.accSelection">
<MemberSignature Language="C#" Value="object Accessibility.IAccessible.accSelection { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance object Accessibility.IAccessible.accSelection" />
<MemberSignature Language="DocId" Value="P:System.Windows.Forms.AccessibleObject.Accessibility#IAccessible#accSelection" />
<MemberSignature Language="VB.NET" Value=" ReadOnly Property accSelection As Object Implements IAccessible.accSelection" />
<MemberSignature Language="C++ CLI" Value="property System::Object ^ Accessibility::IAccessible::accSelection { System::Object ^ get(); };" />
<MemberSignature Language="F#" Usage="Accessibility.IAccessible.accSelection" />
<MemberType>Property</MemberType>
<Implements>
<InterfaceMember>P:Accessibility.IAccessible.accSelection</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Object</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the selected child objects of an accessible object. For a description of this member, see <see cref="P:Accessibility.IAccessible.accSelection" />.</summary>
<value>The selected child objects of an accessible object.</value>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
The following table describes the object types that the <xref:System.Windows.Forms.AccessibleObject.Accessibility%23IAccessible%23accSelection%2A> property returns
|Type|Description|
|----------|-----------------|
|`null`|No child objects are selected.|
|<xref:Accessibility.IAccessible>|The child accessible object that is selected.|
|integer|The child ID that identifies the accessible object that is selected. Use the parent <xref:Accessibility.IAccessible> and the child ID to access the accessible object.|
|`IEnumVARIANT`|A list of child objects that are selected.|
This member is an explicit interface member implementation. It can be used only when the <xref:System.Windows.Forms.AccessibleObject> instance is cast to an <xref:Accessibility.IAccessible> interface.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="Accessibility.IAccessible.get_accChild">
<MemberSignature Language="C#" Value="object IAccessible.get_accChild (object childID);" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance object Accessibility.IAccessible.get_accChild(object childID) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.Accessibility#IAccessible#get_accChild(System.Object)" />
<MemberSignature Language="VB.NET" Value="Function get_accChild (childID As Object) As Object Implements IAccessible.get_accChild" />
<MemberSignature Language="C++ CLI" Value=" virtual System::Object ^ Accessibility.IAccessible.get_accChild(System::Object ^ childID) = Accessibility::IAccessible::get_accChild;" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:Accessibility.IAccessible.get_accChild(System.Object)</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Object</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="childID" Type="System.Object" />
</Parameters>
<Docs>
<param name="childID">The ID number of the child object to retrieve.</param>
<summary>Retrieves a specified child object.</summary>
<returns>The specified child object, if it exists, or <see langword="null" /> if it does not exist.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Accessibility.IAccessible.get_accDefaultAction">
<MemberSignature Language="C#" Value="string IAccessible.get_accDefaultAction (object childID);" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance string Accessibility.IAccessible.get_accDefaultAction(object childID) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.Accessibility#IAccessible#get_accDefaultAction(System.Object)" />
<MemberSignature Language="VB.NET" Value="Function get_accDefaultAction (childID As Object) As String Implements IAccessible.get_accDefaultAction" />
<MemberSignature Language="C++ CLI" Value=" virtual System::String ^ Accessibility.IAccessible.get_accDefaultAction(System::Object ^ childID) = Accessibility::IAccessible::get_accDefaultAction;" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:Accessibility.IAccessible.get_accDefaultAction(System.Object)</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.String</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="childID" Type="System.Object" />
</Parameters>
<Docs>
<param name="childID">The ID number of the accessible object for which to get the default action. This parameter is 0 to select the object, or a child ID to select one of the object's child objects.</param>
<summary>Returns a string that indicates the specified object's default action.</summary>
<returns>A string that indicates the default action of <paramref name="childID" />, or <see langword="name" /> if <paramref name="childID" /> has no default action.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Accessibility.IAccessible.get_accDescription">
<MemberSignature Language="C#" Value="string IAccessible.get_accDescription (object childID);" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance string Accessibility.IAccessible.get_accDescription(object childID) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.Accessibility#IAccessible#get_accDescription(System.Object)" />
<MemberSignature Language="VB.NET" Value="Function get_accDescription (childID As Object) As String Implements IAccessible.get_accDescription" />
<MemberSignature Language="C++ CLI" Value=" virtual System::String ^ Accessibility.IAccessible.get_accDescription(System::Object ^ childID) = Accessibility::IAccessible::get_accDescription;" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:Accessibility.IAccessible.get_accDescription(System.Object)</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.String</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="childID" Type="System.Object" />
</Parameters>
<Docs>
<param name="childID">The ID number of the accessible object for which to get a description. This parameter is 0 to select the object, or a child ID to select one of the object's child objects.</param>
<summary>Returns a string that describes the visual appearance of the specified accessible object.</summary>
<returns>A localized string that describes the specified accessible object.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Accessibility.IAccessible.get_accHelp">
<MemberSignature Language="C#" Value="string IAccessible.get_accHelp (object childID);" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance string Accessibility.IAccessible.get_accHelp(object childID) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.Accessibility#IAccessible#get_accHelp(System.Object)" />
<MemberSignature Language="VB.NET" Value="Function get_accHelp (childID As Object) As String Implements IAccessible.get_accHelp" />
<MemberSignature Language="C++ CLI" Value=" virtual System::String ^ Accessibility.IAccessible.get_accHelp(System::Object ^ childID) = Accessibility::IAccessible::get_accHelp;" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:Accessibility.IAccessible.get_accHelp(System.Object)</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.String</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="childID" Type="System.Object" />
</Parameters>
<Docs>
<param name="childID">The ID number of the accessible object for which to get help information. This parameter is 0 to select the object, or a child ID to select one of the object's child objects.</param>
<summary>Retrieves the full path of the WinHelp file that is associated with the specified accessible object.</summary>
<returns>The full path of the WinHelp file that is associated with <paramref name="childID" />.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Accessibility.IAccessible.get_accHelpTopic">
<MemberSignature Language="C#" Value="int IAccessible.get_accHelpTopic (out string pszHelpFile, object childID);" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance int32 Accessibility.IAccessible.get_accHelpTopic([out] string&amp; pszHelpFile, object childID) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.Accessibility#IAccessible#get_accHelpTopic(System.String@,System.Object)" />
<MemberSignature Language="VB.NET" Value="Function get_accHelpTopic (ByRef pszHelpFile As String, childID As Object) As Integer Implements IAccessible.get_accHelpTopic" />
<MemberSignature Language="C++ CLI" Value=" virtual int Accessibility.IAccessible.get_accHelpTopic([Runtime::InteropServices::Out] System::String ^ % pszHelpFile, System::Object ^ childID) = Accessibility::IAccessible::get_accHelpTopic;" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:Accessibility.IAccessible.get_accHelpTopic(System.String@,System.Object)</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="pszHelpFile" Type="System.String" RefType="out" />
<Parameter Name="childID" Type="System.Object" />
</Parameters>
<Docs>
<param name="pszHelpFile">When the method returns, the full path of the WinHelp file associated with the specified object.</param>
<param name="childID">The ID number of the accessible object for which to retrieve a help topic. This parameter is 0 to select the object, or a child ID to select one of the object's child objects..</param>
<summary>Retrieves the full path of a WinHelp file that is associated with the specified object along with the identifier of a specific topic in the file.</summary>
<returns>The identifier of a specific topic in <paramref name="pszHelpFile" />.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Accessibility.IAccessible.get_accKeyboardShortcut">
<MemberSignature Language="C#" Value="string IAccessible.get_accKeyboardShortcut (object childID);" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance string Accessibility.IAccessible.get_accKeyboardShortcut(object childID) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.Accessibility#IAccessible#get_accKeyboardShortcut(System.Object)" />
<MemberSignature Language="VB.NET" Value="Function get_accKeyboardShortcut (childID As Object) As String Implements IAccessible.get_accKeyboardShortcut" />
<MemberSignature Language="C++ CLI" Value=" virtual System::String ^ Accessibility.IAccessible.get_accKeyboardShortcut(System::Object ^ childID) = Accessibility::IAccessible::get_accKeyboardShortcut;" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:Accessibility.IAccessible.get_accKeyboardShortcut(System.Object)</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Attributes>
<Attribute FrameworkAlternate="netframework-4.0">
<AttributeName>System.Runtime.TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.String</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="childID" Type="System.Object" />
</Parameters>
<Docs>
<param name="childID">The ID number of the accessible object for which to get a keyboard shortcut. This parameter is 0 to select the object, or a child ID to select one of the object's child objects.</param>
<summary>Retrieves the specified object's keyboard shortcut or access key. </summary>
<returns>A localized string that identifies the keyboard shortcut, or <see langword="null" /> if no keyboard shortcut is associated with the specified object. </returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Accessibility.IAccessible.get_accName">
<MemberSignature Language="C#" Value="string IAccessible.get_accName (object childID);" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance string Accessibility.IAccessible.get_accName(object childID) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.Accessibility#IAccessible#get_accName(System.Object)" />
<MemberSignature Language="VB.NET" Value="Function get_accName (childID As Object) As String Implements IAccessible.get_accName" />
<MemberSignature Language="C++ CLI" Value=" virtual System::String ^ Accessibility.IAccessible.get_accName(System::Object ^ childID) = Accessibility::IAccessible::get_accName;" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:Accessibility.IAccessible.get_accName(System.Object)</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Attributes>
<Attribute FrameworkAlternate="netframework-4.0">
<AttributeName>System.Runtime.TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.String</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="childID" Type="System.Object" />
</Parameters>
<Docs>
<param name="childID">The ID number of the accessible object whose name is to be retrieved. This parameter is 0 to select the object, or a child ID to select one of the object's child objects.</param>
<summary>Retrieves the name of the specified object.</summary>
<returns>The name of the specified object.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Accessibility.IAccessible.get_accRole">
<MemberSignature Language="C#" Value="object IAccessible.get_accRole (object childID);" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance object Accessibility.IAccessible.get_accRole(object childID) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.Accessibility#IAccessible#get_accRole(System.Object)" />
<MemberSignature Language="VB.NET" Value="Function get_accRole (childID As Object) As Object Implements IAccessible.get_accRole" />
<MemberSignature Language="C++ CLI" Value=" virtual System::Object ^ Accessibility.IAccessible.get_accRole(System::Object ^ childID) = Accessibility::IAccessible::get_accRole;" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:Accessibility.IAccessible.get_accRole(System.Object)</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Object</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="childID" Type="System.Object" />
</Parameters>
<Docs>
<param name="childID">The ID number of the accessible object for which to get role information. This parameter is 0 to select the object, or a child ID to select one of the object's child objects.</param>
<summary>Retrieves information that describes the role of the specified object.</summary>
<returns>An object that provides role information about the specified accessible object.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Accessibility.IAccessible.get_accState">
<MemberSignature Language="C#" Value="object IAccessible.get_accState (object childID);" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance object Accessibility.IAccessible.get_accState(object childID) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.Accessibility#IAccessible#get_accState(System.Object)" />
<MemberSignature Language="VB.NET" Value="Function get_accState (childID As Object) As Object Implements IAccessible.get_accState" />
<MemberSignature Language="C++ CLI" Value=" virtual System::Object ^ Accessibility.IAccessible.get_accState(System::Object ^ childID) = Accessibility::IAccessible::get_accState;" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:Accessibility.IAccessible.get_accState(System.Object)</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Object</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="childID" Type="System.Object" />
</Parameters>
<Docs>
<param name="childID">The ID number of the accessible object for which to get state information. This parameter is 0 to select the object, or a child ID to select one of the object's child objects.</param>
<summary>Retrieves the current state of the specified accessible object.</summary>
<returns>An object that describes the current state of the specified accessible object.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Accessibility.IAccessible.get_accValue">
<MemberSignature Language="C#" Value="string IAccessible.get_accValue (object childID);" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance string Accessibility.IAccessible.get_accValue(object childID) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.Accessibility#IAccessible#get_accValue(System.Object)" />
<MemberSignature Language="VB.NET" Value="Function get_accValue (childID As Object) As String Implements IAccessible.get_accValue" />
<MemberSignature Language="C++ CLI" Value=" virtual System::String ^ Accessibility.IAccessible.get_accValue(System::Object ^ childID) = Accessibility::IAccessible::get_accValue;" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:Accessibility.IAccessible.get_accValue(System.Object)</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.String</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="childID" Type="System.Object" />
</Parameters>
<Docs>
<param name="childID">The ID number of the accessible object whose value is to be retrieved. This parameter is 0 to select the object, or a child ID to select one of the object's child objects.</param>
<summary>Retrieves the value of the specified accessible object. Not all objects have a value. </summary>
<returns>The value of <paramref name="childID" />, or <see langword="null" /> if the object has no value.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Accessibility.IAccessible.set_accName">
<MemberSignature Language="C#" Value="void IAccessible.set_accName (object childID, string newName);" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance void Accessibility.IAccessible.set_accName(object childID, string newName) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.Accessibility#IAccessible#set_accName(System.Object,System.String)" />
<MemberSignature Language="VB.NET" Value="Sub set_accName (childID As Object, newName As String) Implements IAccessible.set_accName" />
<MemberSignature Language="C++ CLI" Value=" virtual void Accessibility.IAccessible.set_accName(System::Object ^ childID, System::String ^ newName) = Accessibility::IAccessible::set_accName;" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:Accessibility.IAccessible.set_accName(System.Object,System.String)</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="childID" Type="System.Object" />
<Parameter Name="newName" Type="System.String" />
</Parameters>
<Docs>
<param name="childID">The ID number of the accessible object to which to assign a new name. This parameter is 0 to select the object, or a child ID to select one of the object's child objects.</param>
<param name="newName">The new name to assign to <paramref name="childID" />.</param>
<summary>Assigns a new accessible name to the specified element.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Accessibility.IAccessible.set_accValue">
<MemberSignature Language="C#" Value="void IAccessible.set_accValue (object childID, string newValue);" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance void Accessibility.IAccessible.set_accValue(object childID, string newValue) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.Accessibility#IAccessible#set_accValue(System.Object,System.String)" />
<MemberSignature Language="VB.NET" Value="Sub set_accValue (childID As Object, newValue As String) Implements IAccessible.set_accValue" />
<MemberSignature Language="C++ CLI" Value=" virtual void Accessibility.IAccessible.set_accValue(System::Object ^ childID, System::String ^ newValue) = Accessibility::IAccessible::set_accValue;" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:Accessibility.IAccessible.set_accValue(System.Object,System.String)</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="childID" Type="System.Object" />
<Parameter Name="newValue" Type="System.String" />
</Parameters>
<Docs>
<param name="childID">The ID number of the accessible object to which to assign a new value. This parameter is 0 to select the object, or a child ID to select one of the object's child objects.</param>
<param name="newValue">The new value to assign to the specified accessible object.</param>
<summary>Assigns a new value to the specified element.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Bounds">
<MemberSignature Language="C#" Value="public virtual System.Drawing.Rectangle Bounds { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance valuetype System.Drawing.Rectangle Bounds" />
<MemberSignature Language="DocId" Value="P:System.Windows.Forms.AccessibleObject.Bounds" />
<MemberSignature Language="VB.NET" Value="Public Overridable ReadOnly Property Bounds As Rectangle" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; virtual property System::Drawing::Rectangle Bounds { System::Drawing::Rectangle get(); };" />
<MemberSignature Language="F#" Value="member this.Bounds : System.Drawing.Rectangle" Usage="System.Windows.Forms.AccessibleObject.Bounds" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Drawing.Rectangle</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the location and size of the accessible object.</summary>
<value>A <see cref="T:System.Drawing.Rectangle" /> that represents the bounds of the accessible object.</value>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
The <xref:System.Windows.Forms.AccessibleObject.Bounds%2A> 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 <xref:System.Windows.Forms.AccessibleObject.HitTest%2A> method, because <xref:System.Windows.Forms.AccessibleObject.HitTest%2A> determines the object's boundaries on a pixel-by-pixel basis.
## Examples
The following example demonstrates the creation of an accessibility-aware chart control, using the <xref:System.Windows.Forms.AccessibleObject> and <xref:System.Windows.Forms.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 <xref:System.Windows.Forms.Control.CreateAccessibilityInstance%2A> method to provide custom accessible information for the chart control. Since the chart legend is not an actual <xref:System.Windows.Forms.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 <xref:System.Windows.Forms.AccessibleObject.GetChild%2A> 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 <xref:System.Windows.Forms.AccessibleObject.Bounds%2A> property. See the <xref:System.Windows.Forms.AccessibleObject> class overview for the complete code example.
[!code-cpp[System.Windows.Forms.AccessibleObject#6](~/samples/snippets/cpp/VS_Snippets_Winforms/System.Windows.Forms.AccessibleObject/CPP/chartcontrol.cpp#6)]
[!code-csharp[System.Windows.Forms.AccessibleObject#6](~/samples/snippets/csharp/VS_Snippets_Winforms/System.Windows.Forms.AccessibleObject/CS/chartcontrol.cs#6)]
[!code-vb[System.Windows.Forms.AccessibleObject#6](~/samples/snippets/visualbasic/VS_Snippets_Winforms/System.Windows.Forms.AccessibleObject/VB/chartcontrol.vb#6)]
]]></format>
</remarks>
<exception cref="T:System.Runtime.InteropServices.COMException">The bounds of control cannot be retrieved.</exception>
<block subset="none" type="overrides">
<para>The default implementation returns the accessible object's bounding rectangle if the object wraps a system control; otherwise, it returns <see cref="F:System.Drawing.Rectangle.Empty" />. All visible accessible objects must support this method. Sound objects do not support this method.</para>
</block>
<altmember cref="P:System.Windows.Forms.AccessibleObject.DefaultAction" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Description" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Help" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.KeyboardShortcut" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Name" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Parent" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Role" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.State" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Value" />
</Docs>
</Member>
<Member MemberName="DefaultAction">
<MemberSignature Language="C#" Value="public virtual string DefaultAction { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance string DefaultAction" />
<MemberSignature Language="DocId" Value="P:System.Windows.Forms.AccessibleObject.DefaultAction" />
<MemberSignature Language="VB.NET" Value="Public Overridable ReadOnly Property DefaultAction As String" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; virtual property System::String ^ DefaultAction { System::String ^ get(); };" />
<MemberSignature Language="F#" Value="member this.DefaultAction : string" Usage="System.Windows.Forms.AccessibleObject.DefaultAction" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.String</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets a string that describes the default action of the object. Not all objects have a default action.</summary>
<value>A description of the default action for an object, or <see langword="null" /> if this object has no default action.</value>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
The string describes the action that is performed on an object, not what the object does as a result. That is, a toolbar button that prints a document has a default action of "Press" rather than "Prints the current document." Do not confuse an object's default action with its value.
]]></format>
</remarks>
<exception cref="T:System.Runtime.InteropServices.COMException">The default action for the control cannot be retrieved.</exception>
<block subset="none" type="overrides">
<para>The default implementation returns the accessible object's default action if the object wraps a system control that has a default action; otherwise, it returns <see langword="null" />. Only controls that perform actions should support this method. Not all objects have default actions, and some objects might have a default action that is related to its <see cref="P:System.Windows.Forms.AccessibleObject.Value" /> property, such as in the following examples: A selected check box has a default action of "Uncheck" and a value of "Checked." A cleared check box has a default action of "Check" and a value of "Unchecked." A button labeled "Print" has a default action of "Press," with no value. A static text control or an edit control that shows "Printer" has no default action, but would have a value of "Printer." An object's <see cref="P:System.Windows.Forms.AccessibleObject.DefaultAction" /> property should be a verb or a short verb phrase.</para>
</block>
<altmember cref="P:System.Windows.Forms.AccessibleObject.Bounds" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Description" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Help" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.KeyboardShortcut" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Name" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Parent" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Role" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.State" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Value" />
</Docs>
</Member>
<Member MemberName="Description">
<MemberSignature Language="C#" Value="public virtual string Description { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance string Description" />
<MemberSignature Language="DocId" Value="P:System.Windows.Forms.AccessibleObject.Description" />
<MemberSignature Language="VB.NET" Value="Public Overridable ReadOnly Property Description As String" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; virtual property System::String ^ Description { System::String ^ get(); };" />
<MemberSignature Language="F#" Value="member this.Description : string" Usage="System.Windows.Forms.AccessibleObject.Description" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.String</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets a string that describes the visual appearance of the specified object. Not all objects have a description.</summary>
<value>A description of the object's visual appearance to the user, or <see langword="null" /> if the object does not have a description.</value>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
This property describes the object's visual appearance to the user.
]]></format>
</remarks>
<exception cref="T:System.Runtime.InteropServices.COMException">The description for the control cannot be retrieved.</exception>
<block subset="none" type="overrides">
<para>The default implementation returns the accessible object's description if the object wraps a system control; otherwise, it returns <see langword="null" />. The description is typically used to provide greater context for low-vision or blind users. It can also be used for context searching or other applications. Servers need to support the <see cref="P:System.Windows.Forms.AccessibleObject.Description" /> property if the description is not obvious, or if it is redundant based on the object's <see cref="P:System.Windows.Forms.AccessibleObject.Name" />, <see cref="P:System.Windows.Forms.AccessibleObject.Role" />, <see cref="P:System.Windows.Forms.AccessibleObject.State" />, and <see cref="P:System.Windows.Forms.AccessibleObject.Value" /> properties. For example, a button with "OK" does not need additional information, but a button that shows a picture of a cactus would. The <see cref="P:System.Windows.Forms.AccessibleObject.Name" />, <see cref="P:System.Windows.Forms.AccessibleObject.Role" />, and perhaps <see cref="P:System.Windows.Forms.AccessibleObject.Help" /> properties for the cactus button describe its purpose, but the <see cref="P:System.Windows.Forms.AccessibleObject.Description" /> property conveys information that is less tangible, like "A button that shows a picture of a cactus".</para>
</block>
<altmember cref="P:System.Windows.Forms.AccessibleObject.Bounds" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.DefaultAction" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Help" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.KeyboardShortcut" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Name" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Parent" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Role" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.State" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Value" />
</Docs>
</Member>
<Member MemberName="DoDefaultAction">
<MemberSignature Language="C#" Value="public virtual void DoDefaultAction ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void DoDefaultAction() cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.DoDefaultAction" />
<MemberSignature Language="VB.NET" Value="Public Overridable Sub DoDefaultAction ()" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; virtual void DoDefaultAction();" />
<MemberSignature Language="F#" Value="abstract member DoDefaultAction : unit -&gt; unit&#xA;override this.DoDefaultAction : unit -&gt; unit" Usage="accessibleObject.DoDefaultAction " />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Performs the default action associated with this accessible object.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
Clients can retrieve the object's default action by inspecting an object's <xref:System.Windows.Forms.AccessibleObject.DefaultAction%2A> property. A client can use automation (if supported) instead of <xref:System.Windows.Forms.AccessibleObject.DoDefaultAction%2A> to perform an object's default action. However, <xref:System.Windows.Forms.AccessibleObject.DoDefaultAction%2A> provides an easy way to perform an object's most commonly used action.
]]></format>
</remarks>
<exception cref="T:System.Runtime.InteropServices.COMException">The default action for the control cannot be performed.</exception>
<block subset="none" type="overrides">
<para>The default action performed by system-provided user interface elements depends on the keyboard state. That is, if a modifier key such as SHIFT, ALT, or CTRL is down (either by a user action or programmatically) when <see cref="M:System.Windows.Forms.AccessibleObject.DoDefaultAction" /> is called, the default action might not be the same as when those keys are not down. Not all objects have a default action.</para>
</block>
</Docs>
</Member>
<Member MemberName="GetChild">
<MemberSignature Language="C#" Value="public virtual System.Windows.Forms.AccessibleObject GetChild (int index);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.Windows.Forms.AccessibleObject GetChild(int32 index) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.GetChild(System.Int32)" />
<MemberSignature Language="VB.NET" Value="Public Overridable Function GetChild (index As Integer) As AccessibleObject" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; virtual System::Windows::Forms::AccessibleObject ^ GetChild(int index);" />
<MemberSignature Language="F#" Value="abstract member GetChild : int -&gt; System.Windows.Forms.AccessibleObject&#xA;override this.GetChild : int -&gt; System.Windows.Forms.AccessibleObject" Usage="accessibleObject.GetChild index" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Windows.Forms.AccessibleObject</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="index" Type="System.Int32" />
</Parameters>
<Docs>
<param name="index">The zero-based index of the accessible child.</param>
<summary>Retrieves the accessible child corresponding to the specified index.</summary>
<returns>An <see cref="T:System.Windows.Forms.AccessibleObject" /> that represents the accessible child corresponding to the specified index.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Examples
The following example demonstrates the creation of an accessibility-aware chart control, using the <xref:System.Windows.Forms.AccessibleObject> and <xref:System.Windows.Forms.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 <xref:System.Windows.Forms.Control.CreateAccessibilityInstance%2A> method to provide custom accessible information for the chart control. Since the chart legend is not an actual <xref:System.Windows.Forms.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 <xref:System.Windows.Forms.AccessibleObject.GetChild%2A> 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 <xref:System.Windows.Forms.AccessibleObject.GetChild%2A> method. See the <xref:System.Windows.Forms.AccessibleObject> class overview for the complete code example.
[!code-cpp[System.Windows.Forms.AccessibleObject#4](~/samples/snippets/cpp/VS_Snippets_Winforms/System.Windows.Forms.AccessibleObject/CPP/chartcontrol.cpp#4)]
[!code-csharp[System.Windows.Forms.AccessibleObject#4](~/samples/snippets/csharp/VS_Snippets_Winforms/System.Windows.Forms.AccessibleObject/CS/chartcontrol.cs#4)]
[!code-vb[System.Windows.Forms.AccessibleObject#4](~/samples/snippets/visualbasic/VS_Snippets_Winforms/System.Windows.Forms.AccessibleObject/VB/chartcontrol.vb#4)]
]]></format>
</remarks>
<block subset="none" type="overrides">
<para>All accessible objects must support this property. If the method is not overridden, it returns <see langword="null" />. Override this method when an accessible object needs to provide custom accessible children. If the index is invalid, then this method should return <see langword="null" />. When you override this method, you must also override <see cref="M:System.Windows.Forms.AccessibleObject.GetChildCount" />.</para>
</block>
</Docs>
</Member>
<Member MemberName="GetChildCount">
<MemberSignature Language="C#" Value="public virtual int GetChildCount ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance int32 GetChildCount() cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.GetChildCount" />
<MemberSignature Language="VB.NET" Value="Public Overridable Function GetChildCount () As Integer" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; virtual int GetChildCount();" />
<MemberSignature Language="F#" Value="abstract member GetChildCount : unit -&gt; int&#xA;override this.GetChildCount : unit -&gt; int" Usage="accessibleObject.GetChildCount " />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Retrieves the number of children belonging to an accessible object.</summary>
<returns>The number of children belonging to an accessible object.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Examples
The following example demonstrates the creation of an accessibility-aware chart control, using the <xref:System.Windows.Forms.AccessibleObject> and <xref:System.Windows.Forms.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 <xref:System.Windows.Forms.Control.CreateAccessibilityInstance%2A> method to provide custom accessible information for the chart control. Since the chart legend is not an actual <xref:System.Windows.Forms.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 <xref:System.Windows.Forms.AccessibleObject.GetChild%2A> 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 demonstrates shows overriding the <xref:System.Windows.Forms.AccessibleObject.GetChildCount%2A> method. See the <xref:System.Windows.Forms.AccessibleObject> class overview for the complete code example.
[!code-cpp[System.Windows.Forms.AccessibleObject#4](~/samples/snippets/cpp/VS_Snippets_Winforms/System.Windows.Forms.AccessibleObject/CPP/chartcontrol.cpp#4)]
[!code-csharp[System.Windows.Forms.AccessibleObject#4](~/samples/snippets/csharp/VS_Snippets_Winforms/System.Windows.Forms.AccessibleObject/CS/chartcontrol.cs#4)]
[!code-vb[System.Windows.Forms.AccessibleObject#4](~/samples/snippets/visualbasic/VS_Snippets_Winforms/System.Windows.Forms.AccessibleObject/VB/chartcontrol.vb#4)]
]]></format>
</remarks>
<block subset="none" type="overrides">
<para>All objects must support this property. The default implementation returns -1. Override this method when an accessible object needs to provide custom accessible children. When you override this method, you must also override <see cref="M:System.Windows.Forms.AccessibleObject.GetChild(System.Int32)" />.</para>
</block>
</Docs>
</Member>
<Member MemberName="GetFocused">
<MemberSignature Language="C#" Value="public virtual System.Windows.Forms.AccessibleObject GetFocused ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.Windows.Forms.AccessibleObject GetFocused() cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.GetFocused" />
<MemberSignature Language="VB.NET" Value="Public Overridable Function GetFocused () As AccessibleObject" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; virtual System::Windows::Forms::AccessibleObject ^ GetFocused();" />
<MemberSignature Language="F#" Value="abstract member GetFocused : unit -&gt; System.Windows.Forms.AccessibleObject&#xA;override this.GetFocused : unit -&gt; System.Windows.Forms.AccessibleObject" Usage="accessibleObject.GetFocused " />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Windows.Forms.AccessibleObject</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Retrieves the object that has the keyboard focus.</summary>
<returns>An <see cref="T:System.Windows.Forms.AccessibleObject" /> that specifies the currently focused child. This method returns the calling object if the object itself is focused. Returns <see langword="null" /> if no object has focus.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
The concept of keyboard focus is related to that of an active window. An active window is the foreground window in which the user is working. The object with the keyboard focus is either the active window or a child object of the active window.
Only one object or item within a container can have the focus at any one time. The object with the keyboard focus is not necessarily the selected object.
]]></format>
</remarks>
<exception cref="T:System.Runtime.InteropServices.COMException">The control cannot be retrieved.</exception>
<block subset="none" type="overrides">
<para>All objects that can receive the keyboard focus must support this property.</para>
</block>
<altmember cref="M:System.Windows.Forms.AccessibleObject.GetChild(System.Int32)" />
</Docs>
</Member>
<Member MemberName="GetHelpTopic">
<MemberSignature Language="C#" Value="public virtual int GetHelpTopic (out string fileName);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance int32 GetHelpTopic([out] string&amp; fileName) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.GetHelpTopic(System.String@)" />
<MemberSignature Language="VB.NET" Value="Public Overridable Function GetHelpTopic (ByRef fileName As String) As Integer" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; virtual int GetHelpTopic([Runtime::InteropServices::Out] System::String ^ % fileName);" />
<MemberSignature Language="F#" Value="abstract member GetHelpTopic : -&gt; int&#xA;override this.GetHelpTopic : -&gt; int" Usage="accessibleObject.GetHelpTopic fileName" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="fileName" Type="System.String" RefType="out" />
</Parameters>
<Docs>
<param name="fileName">On return, this property contains the path to the Help file associated with this accessible object.</param>
<summary>Gets an identifier for a Help topic identifier and the path to the Help file associated with this accessible object.</summary>
<returns>An identifier for a Help topic, or -1 if there is no Help topic. On return, the <paramref name="fileName" /> parameter contains the path to the Help file associated with this accessible object.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
To display help for the <xref:System.Windows.Forms.AccessibleObject> using the Windows Help system, you can pass the file name and topic ID to the appropriate <xref:System.Windows.Forms.Help.ShowHelp%2A?displayProperty=nameWithType> method of <xref:System.Windows.Forms.Help>.
]]></format>
</remarks>
<exception cref="T:System.Runtime.InteropServices.COMException">The Help topic for the control cannot be retrieved.</exception>
<block subset="none" type="overrides">
<para>Not all objects need to support this property.</para>
</block>
<altmember cref="T:System.Windows.Forms.Help" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Help" />
</Docs>
</Member>
<Member MemberName="GetSelected">
<MemberSignature Language="C#" Value="public virtual System.Windows.Forms.AccessibleObject GetSelected ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.Windows.Forms.AccessibleObject GetSelected() cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.GetSelected" />
<MemberSignature Language="VB.NET" Value="Public Overridable Function GetSelected () As AccessibleObject" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; virtual System::Windows::Forms::AccessibleObject ^ GetSelected();" />
<MemberSignature Language="F#" Value="abstract member GetSelected : unit -&gt; System.Windows.Forms.AccessibleObject&#xA;override this.GetSelected : unit -&gt; System.Windows.Forms.AccessibleObject" Usage="accessibleObject.GetSelected " />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Windows.Forms.AccessibleObject</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Retrieves the currently selected child.</summary>
<returns>An <see cref="T:System.Windows.Forms.AccessibleObject" /> that represents the currently selected child. This method returns the calling object if the object itself is selected. Returns <see langword="null" /> if is no child is currently selected and the object itself does not have focus.</returns>
<remarks>To be added.</remarks>
<exception cref="T:System.Runtime.InteropServices.COMException">The selected child cannot be retrieved.</exception>
<block subset="none" type="overrides">
<para>All objects that can be selected should support this property.</para>
</block>
</Docs>
</Member>
<Member MemberName="Help">
<MemberSignature Language="C#" Value="public virtual string Help { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance string Help" />
<MemberSignature Language="DocId" Value="P:System.Windows.Forms.AccessibleObject.Help" />
<MemberSignature Language="VB.NET" Value="Public Overridable ReadOnly Property Help As String" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; virtual property System::String ^ Help { System::String ^ get(); };" />
<MemberSignature Language="F#" Value="member this.Help : string" Usage="System.Windows.Forms.AccessibleObject.Help" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.String</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets a description of what the object does or how the object is used.</summary>
<value>A <see cref="T:System.String" /> that contains the description of what the object does or how the object is used. Returns <see langword="null" /> if no help is defined.</value>
<remarks>To be added.</remarks>
<exception cref="T:System.Runtime.InteropServices.COMException">The help string for the control cannot be retrieved.</exception>
<block subset="none" type="overrides">
<para>Not all objects need to support this property. Typically, this property contains ToolTip style information that is used either to describe what the object does or how to use it. For example, the <see cref="P:System.Windows.Forms.AccessibleObject.Help" /> property for a toolbar button that shows a printer might be "Prints the current document." The text for the <see cref="P:System.Windows.Forms.AccessibleObject.Help" /> property does not have to be unique within the user interface. Servers do not need to support the <see cref="P:System.Windows.Forms.AccessibleObject.Help" /> property if other properties provide sufficient information about the object's purpose and what actions the object might perform.</para>
</block>
<altmember cref="P:System.Windows.Forms.AccessibleObject.Bounds" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.DefaultAction" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Description" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.KeyboardShortcut" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Name" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Parent" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Role" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.State" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Value" />
</Docs>
</Member>
<Member MemberName="HitTest">
<MemberSignature Language="C#" Value="public virtual System.Windows.Forms.AccessibleObject HitTest (int x, int y);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.Windows.Forms.AccessibleObject HitTest(int32 x, int32 y) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.HitTest(System.Int32,System.Int32)" />
<MemberSignature Language="VB.NET" Value="Public Overridable Function HitTest (x As Integer, y As Integer) As AccessibleObject" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; virtual System::Windows::Forms::AccessibleObject ^ HitTest(int x, int y);" />
<MemberSignature Language="F#" Value="abstract member HitTest : int * int -&gt; System.Windows.Forms.AccessibleObject&#xA;override this.HitTest : int * int -&gt; System.Windows.Forms.AccessibleObject" Usage="accessibleObject.HitTest (x, y)" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Windows.Forms.AccessibleObject</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="x" Type="System.Int32" />
<Parameter Name="y" Type="System.Int32" />
</Parameters>
<Docs>
<param name="x">The horizontal screen coordinate.</param>
<param name="y">The vertical screen coordinate.</param>
<summary>Retrieves the child object at the specified screen coordinates.</summary>
<returns>An <see cref="T:System.Windows.Forms.AccessibleObject" /> that represents the child object at the given screen coordinates. This method returns the calling object if the object itself is at the location specified. Returns <see langword="null" /> if no object is at the tested location.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
For nonrectangular objects such as list view items, the coordinates of the object's bounding rectangle retrieved by <xref:System.Windows.Forms.AccessibleObject.Bounds%2A> can fail if tested with <xref:System.Windows.Forms.AccessibleObject.HitTest%2A>, because <xref:System.Windows.Forms.AccessibleObject.HitTest%2A> determines the object's boundaries on a pixel-by-pixel basis.
]]></format>
</remarks>
<exception cref="T:System.Runtime.InteropServices.COMException">The control cannot be hit tested.</exception>
<block subset="none" type="overrides">
<para>All visual objects must support this method; sound objects do not support it.</para>
</block>
</Docs>
</Member>
<Member MemberName="KeyboardShortcut">
<MemberSignature Language="C#" Value="public virtual string KeyboardShortcut { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance string KeyboardShortcut" />
<MemberSignature Language="DocId" Value="P:System.Windows.Forms.AccessibleObject.KeyboardShortcut" />
<MemberSignature Language="VB.NET" Value="Public Overridable ReadOnly Property KeyboardShortcut As String" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; virtual property System::String ^ KeyboardShortcut { System::String ^ get(); };" />
<MemberSignature Language="F#" Value="member this.KeyboardShortcut : string" Usage="System.Windows.Forms.AccessibleObject.KeyboardShortcut" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.String</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the shortcut key or access key for the accessible object.</summary>
<value>The shortcut key or access key for the accessible object, or <see langword="null" /> if there is no shortcut key associated with the object.</value>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
An access key, also known as a mnemonic, is an underlined character in the text of a menu, menu item, label of a button, or some other control. For example, a user can display a menu by pressing the ALT key while also pressing the indicated underlined key, such as ALT+F, to open the `File` menu. To use the access key of a menu item, the menu containing the item must be active. Controls such as toolbar buttons and menu items often have an associated shortcut key. A menu item can have both an access key and a shortcut key associated with it. If the value of the <xref:System.Windows.Forms.AccessibleObject.KeyboardShortcut%2A> property is a single character, you can assume it is an access key.
]]></format>
</remarks>
<exception cref="T:System.Runtime.InteropServices.COMException">The shortcut for the control cannot be retrieved.</exception>
<block subset="none" type="overrides">
<para>All objects that have a shortcut key or access key should support this property.</para>
</block>
<altmember cref="P:System.Windows.Forms.AccessibleObject.Bounds" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.DefaultAction" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Description" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Help" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Name" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Parent" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Role" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.State" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Value" />
</Docs>
</Member>
<Member MemberName="Name">
<MemberSignature Language="C#" Value="public virtual string Name { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance string Name" />
<MemberSignature Language="DocId" Value="P:System.Windows.Forms.AccessibleObject.Name" />
<MemberSignature Language="VB.NET" Value="Public Overridable Property Name As String" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; virtual property System::String ^ Name { System::String ^ get(); void set(System::String ^ value); };" />
<MemberSignature Language="F#" Value="member this.Name : string with get, set" Usage="System.Windows.Forms.AccessibleObject.Name" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.String</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets or sets the object name.</summary>
<value>The object name, or <see langword="null" /> if the property has not been set.</value>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
The <xref:System.Windows.Forms.AccessibleObject.Name%2A> property is a string used by clients to identify, find, or announce an object for the user. To access the name of a child object, you must first call <xref:System.Windows.Forms.AccessibleObject.GetChild%2A> with the index of the child whose name you are retrieving.
## Examples
The following example demonstrates the creation of an accessibility-aware chart control, using the <xref:System.Windows.Forms.AccessibleObject> and <xref:System.Windows.Forms.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 <xref:System.Windows.Forms.Control.CreateAccessibilityInstance%2A> method to provide custom accessible information for the chart control. Since the chart legend is not an actual <xref:System.Windows.Forms.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 <xref:System.Windows.Forms.AccessibleObject.GetChild%2A> 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 <xref:System.Windows.Forms.AccessibleObject.Name%2A> property. See the <xref:System.Windows.Forms.AccessibleObject> class overview for the complete code example.
[!code-cpp[System.Windows.Forms.AccessibleObject#6](~/samples/snippets/cpp/VS_Snippets_Winforms/System.Windows.Forms.AccessibleObject/CPP/chartcontrol.cpp#6)]
[!code-csharp[System.Windows.Forms.AccessibleObject#6](~/samples/snippets/csharp/VS_Snippets_Winforms/System.Windows.Forms.AccessibleObject/CS/chartcontrol.cs#6)]
[!code-vb[System.Windows.Forms.AccessibleObject#6](~/samples/snippets/visualbasic/VS_Snippets_Winforms/System.Windows.Forms.AccessibleObject/VB/chartcontrol.vb#6)]
]]></format>
</remarks>
<exception cref="T:System.Runtime.InteropServices.COMException">The name of the control cannot be retrieved or set.</exception>
<block subset="none" type="overrides">
<para>All objects should support this property. An object's name should be intuitive so that users understand the object's meaning or purpose. Also, ensure that the <see langword="Name" /> property is unique relative to any sibling objects in the parent. Navigation within tables presents especially difficult problems for some users. Therefore, server developers should make table cell names as descriptive as possible. For example, you might create a cell name by combining the names of the row and column it occupies, such as "A1." However, it is generally better to use more descriptive names, such as "Karin, February." Many objects, such as icons, menus, check boxes, combo boxes, and other controls, have labels that are displayed to users. Any label displayed to users should be used for the object's <see cref="P:System.Windows.Forms.AccessibleObject.Name" /> property. For more information, see the <see cref="P:System.Windows.Forms.AccessibleObject.Name" /> Property.
If you are using menu or button text for the <see cref="P:System.Windows.Forms.AccessibleObject.Name" /> property, strip out the ampersands (&amp;) that mark the keyboard access keys.</para>
</block>
<altmember cref="P:System.Windows.Forms.AccessibleObject.Bounds" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.DefaultAction" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Description" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Help" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.KeyboardShortcut" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Parent" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Role" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.State" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Value" />
</Docs>
</Member>
<Member MemberName="Navigate">
<MemberSignature Language="C#" Value="public virtual System.Windows.Forms.AccessibleObject Navigate (System.Windows.Forms.AccessibleNavigation navdir);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.Windows.Forms.AccessibleObject Navigate(valuetype System.Windows.Forms.AccessibleNavigation navdir) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.Navigate(System.Windows.Forms.AccessibleNavigation)" />
<MemberSignature Language="VB.NET" Value="Public Overridable Function Navigate (navdir As AccessibleNavigation) As AccessibleObject" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; virtual System::Windows::Forms::AccessibleObject ^ Navigate(System::Windows::Forms::AccessibleNavigation navdir);" />
<MemberSignature Language="F#" Value="abstract member Navigate : System.Windows.Forms.AccessibleNavigation -&gt; System.Windows.Forms.AccessibleObject&#xA;override this.Navigate : System.Windows.Forms.AccessibleNavigation -&gt; System.Windows.Forms.AccessibleObject" Usage="accessibleObject.Navigate navdir" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Windows.Forms.AccessibleObject</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="navdir" Type="System.Windows.Forms.AccessibleNavigation" />
</Parameters>
<Docs>
<param name="navdir">One of the <see cref="T:System.Windows.Forms.AccessibleNavigation" /> values.</param>
<summary>Navigates to another accessible object.</summary>
<returns>An <see cref="T:System.Windows.Forms.AccessibleObject" /> that represents one of the <see cref="T:System.Windows.Forms.AccessibleNavigation" /> values.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
Navigation, both spatial and logical, is always restricted to the user interface elements within a container. With spatial navigation, clients can navigate only to a sibling of the starting object. Depending on the navigational flag used with logical navigation, clients can navigate to either a child or to a sibling of the starting object. This method does not change the selection or focus. To change the focus or to select an object, use <xref:System.Windows.Forms.AccessibleObject.Select%2A>. The <xref:System.Windows.Forms.AccessibleObject.Navigate%2A> method retrieves only user interface elements that have a defined screen location.
## Examples
The following example demonstrates the creation of an accessibility-aware chart control, using the <xref:System.Windows.Forms.AccessibleObject> and <xref:System.Windows.Forms.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 <xref:System.Windows.Forms.Control.CreateAccessibilityInstance%2A> method to provide custom accessible information for the chart control. Since the chart legend is not an actual <xref:System.Windows.Forms.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 <xref:System.Windows.Forms.AccessibleObject.GetChild%2A> 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 demonstrates shows overriding the <xref:System.Windows.Forms.AccessibleObject.Navigate%2A> method. See the <xref:System.Windows.Forms.AccessibleObject> class overview for the complete code example.
[!code-cpp[System.Windows.Forms.AccessibleObject#6](~/samples/snippets/cpp/VS_Snippets_Winforms/System.Windows.Forms.AccessibleObject/CPP/chartcontrol.cpp#6)]
[!code-csharp[System.Windows.Forms.AccessibleObject#6](~/samples/snippets/csharp/VS_Snippets_Winforms/System.Windows.Forms.AccessibleObject/CS/chartcontrol.cs#6)]
[!code-vb[System.Windows.Forms.AccessibleObject#6](~/samples/snippets/visualbasic/VS_Snippets_Winforms/System.Windows.Forms.AccessibleObject/VB/chartcontrol.vb#6)]
]]></format>
</remarks>
<exception cref="T:System.Runtime.InteropServices.COMException">The navigation attempt fails.</exception>
<block subset="none" type="overrides">
<para>All visual objects must support this method. If an object has the state <see cref="F:System.Windows.Forms.AccessibleStates.Invisible" />, navigation to this hidden object might fail. Some system-defined interface elements such as menus, menu items, and pop-up menus allow navigation to objects that are not visible. However, other system-defined user interface elements do not support this. If possible, servers should support navigation to objects that are not visible, but this support is not required and clients should not expect it.</para>
</block>
</Docs>
</Member>
<Member MemberName="Parent">
<MemberSignature Language="C#" Value="public virtual System.Windows.Forms.AccessibleObject Parent { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance class System.Windows.Forms.AccessibleObject Parent" />
<MemberSignature Language="DocId" Value="P:System.Windows.Forms.AccessibleObject.Parent" />
<MemberSignature Language="VB.NET" Value="Public Overridable ReadOnly Property Parent As AccessibleObject" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; virtual property System::Windows::Forms::AccessibleObject ^ Parent { System::Windows::Forms::AccessibleObject ^ get(); };" />
<MemberSignature Language="F#" Value="member this.Parent : System.Windows.Forms.AccessibleObject" Usage="System.Windows.Forms.AccessibleObject.Parent" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Windows.Forms.AccessibleObject</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the parent of an accessible object.</summary>
<value>An <see cref="T:System.Windows.Forms.AccessibleObject" /> that represents the parent of an accessible object, or <see langword="null" /> if there is no parent object.</value>
<remarks>
<format type="text/markdown"><![CDATA[
## Examples
The following example demonstrates the creation of an accessibility-aware chart control, using the <xref:System.Windows.Forms.AccessibleObject> and <xref:System.Windows.Forms.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 <xref:System.Windows.Forms.Control.CreateAccessibilityInstance%2A> method to provide custom accessible information for the chart control. Since the chart legend is not an actual <xref:System.Windows.Forms.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 <xref:System.Windows.Forms.AccessibleObject.GetChild%2A> 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 <xref:System.Windows.Forms.AccessibleObject.Parent%2A> property. See the <xref:System.Windows.Forms.AccessibleObject> class overview for the complete code example.
[!code-cpp[System.Windows.Forms.AccessibleObject#6](~/samples/snippets/cpp/VS_Snippets_Winforms/System.Windows.Forms.AccessibleObject/CPP/chartcontrol.cpp#6)]
[!code-csharp[System.Windows.Forms.AccessibleObject#6](~/samples/snippets/csharp/VS_Snippets_Winforms/System.Windows.Forms.AccessibleObject/CS/chartcontrol.cs#6)]
[!code-vb[System.Windows.Forms.AccessibleObject#6](~/samples/snippets/visualbasic/VS_Snippets_Winforms/System.Windows.Forms.AccessibleObject/VB/chartcontrol.vb#6)]
]]></format>
</remarks>
<block subset="none" type="overrides">
<para>All objects should support this property.</para>
</block>
<altmember cref="P:System.Windows.Forms.AccessibleObject.Bounds" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.DefaultAction" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Description" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Help" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.KeyboardShortcut" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Name" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Role" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.State" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Value" />
</Docs>
</Member>
<Member MemberName="RaiseAutomationNotification">
<MemberSignature Language="C#" Value="public bool RaiseAutomationNotification (System.Windows.Forms.Automation.AutomationNotificationKind notificationKind, System.Windows.Forms.Automation.AutomationNotificationProcessing notificationProcessing, string notificationText);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool RaiseAutomationNotification(valuetype System.Windows.Forms.Automation.AutomationNotificationKind notificationKind, valuetype System.Windows.Forms.Automation.AutomationNotificationProcessing notificationProcessing, string notificationText) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.RaiseAutomationNotification(System.Windows.Forms.Automation.AutomationNotificationKind,System.Windows.Forms.Automation.AutomationNotificationProcessing,System.String)" />
<MemberSignature Language="VB.NET" Value="Public Function RaiseAutomationNotification (notificationKind As AutomationNotificationKind, notificationProcessing As AutomationNotificationProcessing, notificationText As String) As Boolean" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; bool RaiseAutomationNotification(System::Windows::Forms::Automation::AutomationNotificationKind notificationKind, System::Windows::Forms::Automation::AutomationNotificationProcessing notificationProcessing, System::String ^ notificationText);" />
<MemberSignature Language="F#" Value="member this.RaiseAutomationNotification : System.Windows.Forms.Automation.AutomationNotificationKind * System.Windows.Forms.Automation.AutomationNotificationProcessing * string -&gt; bool" Usage="accessibleObject.RaiseAutomationNotification (notificationKind, notificationProcessing, notificationText)" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="notificationKind" Type="System.Windows.Forms.Automation.AutomationNotificationKind" Index="0" FrameworkAlternate="netcore-3.0;netframework-4.8" />
<Parameter Name="notificationProcessing" Type="System.Windows.Forms.Automation.AutomationNotificationProcessing" Index="1" FrameworkAlternate="netcore-3.0;netframework-4.8" />
<Parameter Name="notificationText" Type="System.String" Index="2" FrameworkAlternate="netcore-3.0;netframework-4.8" />
</Parameters>
<Docs>
<param name="notificationKind">The type of notification.</param>
<param name="notificationProcessing">An indicator of how to process notifications.</param>
<param name="notificationText">The text of the notification.</param>
<summary>Raises the UI automation notification event.</summary>
<returns>
<see langword="true" /> if the operation succeeds; <see langword="false" /> if the underlying Windows infrastructure is not available or the operation failed. Call <see cref="M:System.Runtime.InteropServices.Marshal.GetLastWin32Error" /> for details. </returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
This event is available starting with Windows 10, version 1709.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="RaiseLiveRegionChanged">
<MemberSignature Language="C#" Value="public virtual bool RaiseLiveRegionChanged ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance bool RaiseLiveRegionChanged() cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.RaiseLiveRegionChanged" />
<MemberSignature Language="VB.NET" Value="Public Overridable Function RaiseLiveRegionChanged () As Boolean" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; virtual bool RaiseLiveRegionChanged();" />
<MemberSignature Language="F#" Value="abstract member RaiseLiveRegionChanged : unit -&gt; bool&#xA;override this.RaiseLiveRegionChanged : unit -&gt; bool" Usage="accessibleObject.RaiseLiveRegionChanged " />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Raises the LiveRegionChanged UI automation event.</summary>
<returns>
<see langword="true" /> if the operation succeeds; <see langword="False" /> otherwise.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
This method must be overridden in derived classes that support the UI automation live region feature.
]]></format>
</remarks>
<exception cref="T:System.NotSupportedException">Accessibility object live regions are not supported. </exception>
</Docs>
</Member>
<Member MemberName="Role">
<MemberSignature Language="C#" Value="public virtual System.Windows.Forms.AccessibleRole Role { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance valuetype System.Windows.Forms.AccessibleRole Role" />
<MemberSignature Language="DocId" Value="P:System.Windows.Forms.AccessibleObject.Role" />
<MemberSignature Language="VB.NET" Value="Public Overridable ReadOnly Property Role As AccessibleRole" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; virtual property System::Windows::Forms::AccessibleRole Role { System::Windows::Forms::AccessibleRole get(); };" />
<MemberSignature Language="F#" Value="member this.Role : System.Windows.Forms.AccessibleRole" Usage="System.Windows.Forms.AccessibleObject.Role" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Windows.Forms.AccessibleRole</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the role of this accessible object.</summary>
<value>One of the <see cref="T:System.Windows.Forms.AccessibleRole" /> values, or <see cref="F:System.Windows.Forms.AccessibleRole.None" /> if no role has been specified.</value>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
The role of the object helps describe the function of the object.
## Examples
The following example demonstrates the creation of an accessibility-aware chart control, using the <xref:System.Windows.Forms.AccessibleObject> and <xref:System.Windows.Forms.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 <xref:System.Windows.Forms.Control.CreateAccessibilityInstance%2A> method to provide custom accessible information for the chart control. Since the chart legend is not an actual <xref:System.Windows.Forms.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 <xref:System.Windows.Forms.AccessibleObject.GetChild%2A> 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 <xref:System.Windows.Forms.AccessibleObject.Role%2A> property. See the <xref:System.Windows.Forms.AccessibleObject> class overview for the complete code example.
[!code-cpp[System.Windows.Forms.AccessibleObject#4](~/samples/snippets/cpp/VS_Snippets_Winforms/System.Windows.Forms.AccessibleObject/CPP/chartcontrol.cpp#4)]
[!code-csharp[System.Windows.Forms.AccessibleObject#4](~/samples/snippets/csharp/VS_Snippets_Winforms/System.Windows.Forms.AccessibleObject/CS/chartcontrol.cs#4)]
[!code-vb[System.Windows.Forms.AccessibleObject#4](~/samples/snippets/visualbasic/VS_Snippets_Winforms/System.Windows.Forms.AccessibleObject/VB/chartcontrol.vb#4)]
]]></format>
</remarks>
<block subset="none" type="overrides">
<para>All objects should support this property.</para>
</block>
<altmember cref="P:System.Windows.Forms.AccessibleObject.Bounds" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.DefaultAction" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Description" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Help" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.KeyboardShortcut" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Name" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Parent" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.State" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Value" />
</Docs>
</Member>
<Member MemberName="RuntimeIDFirstItem">
<MemberSignature Language="C#" Value="protected const int RuntimeIDFirstItem = 42;" />
<MemberSignature Language="ILAsm" Value=".field family static literal int32 RuntimeIDFirstItem = (42)" />
<MemberSignature Language="DocId" Value="F:System.Windows.Forms.AccessibleObject.RuntimeIDFirstItem" />
<MemberSignature Language="VB.NET" Value="Protected Const RuntimeIDFirstItem As Integer = 42" />
<MemberSignature Language="C++ CLI" Value="protected: int RuntimeIDFirstItem = 42;" />
<MemberSignature Language="F#" Value="val mutable RuntimeIDFirstItem : int" Usage="System.Windows.Forms.AccessibleObject.RuntimeIDFirstItem" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<MemberValue>42</MemberValue>
<Docs>
<summary>To be added.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Select">
<MemberSignature Language="C#" Value="public virtual void Select (System.Windows.Forms.AccessibleSelection flags);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Select(valuetype System.Windows.Forms.AccessibleSelection flags) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.Select(System.Windows.Forms.AccessibleSelection)" />
<MemberSignature Language="VB.NET" Value="Public Overridable Sub Select (flags As AccessibleSelection)" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; virtual void Select(System::Windows::Forms::AccessibleSelection flags);" />
<MemberSignature Language="F#" Value="abstract member Select : System.Windows.Forms.AccessibleSelection -&gt; unit&#xA;override this.Select : System.Windows.Forms.AccessibleSelection -&gt; unit" Usage="accessibleObject.Select flags" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="flags" Type="System.Windows.Forms.AccessibleSelection" />
</Parameters>
<Docs>
<param name="flags">One of the <see cref="T:System.Windows.Forms.AccessibleSelection" /> values.</param>
<summary>Modifies the selection or moves the keyboard focus of the accessible object.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
Applications can use this method to perform complex selection operations.
The following describes which <xref:System.Windows.Forms.AccessibleSelection> values to specify when calling <xref:System.Windows.Forms.AccessibleObject.Select%2A> to perform complex selection operations.
|Operation|Flag Combination|
|---------------|----------------------|
|To simulate a click|<xref:System.Windows.Forms.AccessibleSelection.TakeFocus?displayProperty=nameWithType> `OR` <xref:System.Windows.Forms.AccessibleSelection.TakeSelection?displayProperty=nameWithType> **Note:** This combination will not select the desired control if called from within your own application. It will have the desired effect, however, if called from an external application.|
|To select a target item by simulating CTRL + click|<xref:System.Windows.Forms.AccessibleSelection.TakeFocus?displayProperty=nameWithType> `OR` <xref:System.Windows.Forms.AccessibleSelection.AddSelection?displayProperty=nameWithType>|
|To cancel selection of a target item by simulating CTRL + click|<xref:System.Windows.Forms.AccessibleSelection.TakeFocus?displayProperty=nameWithType> `OR` <xref:System.Windows.Forms.AccessibleSelection.RemoveSelection?displayProperty=nameWithType>|
|To simulate SHIFT + click|<xref:System.Windows.Forms.AccessibleSelection.TakeFocus?displayProperty=nameWithType> `OR` <xref:System.Windows.Forms.AccessibleSelection.ExtendSelection?displayProperty=nameWithType>|
|To select a range of objects and put focus on the last object|Specify <xref:System.Windows.Forms.AccessibleSelection.TakeFocus?displayProperty=nameWithType> on the starting object to set the selection anchor. Then call <xref:System.Windows.Forms.AccessibleObject.Select%2A> again and specify <xref:System.Windows.Forms.AccessibleSelection.TakeFocus?displayProperty=nameWithType>`OR`<xref:System.Windows.Forms.AccessibleSelection.ExtendSelection?displayProperty=nameWithType> on the last object.|
|To deselect all objects|Specify <xref:System.Windows.Forms.AccessibleSelection.TakeSelection?displayProperty=nameWithType> on any object. This flag deselects all selected objects except the one just selected. Then call <xref:System.Windows.Forms.AccessibleObject.Select%2A> again and specify <xref:System.Windows.Forms.AccessibleSelection.RemoveSelection?displayProperty=nameWithType> on the same object.|
## Examples
The following example demonstrates the creation of an accessibility-aware chart control, using the <xref:System.Windows.Forms.AccessibleObject> and <xref:System.Windows.Forms.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 <xref:System.Windows.Forms.Control.CreateAccessibilityInstance%2A> method to provide custom accessible information for the chart control. Since the chart legend is not an actual <xref:System.Windows.Forms.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 <xref:System.Windows.Forms.AccessibleObject.GetChild%2A> 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 demonstrates shows overriding the <xref:System.Windows.Forms.AccessibleObject.Select%2A> method. See the <xref:System.Windows.Forms.AccessibleObject> class overview for the complete code example.
[!code-cpp[System.Windows.Forms.AccessibleObject#6](~/samples/snippets/cpp/VS_Snippets_Winforms/System.Windows.Forms.AccessibleObject/CPP/chartcontrol.cpp#6)]
[!code-csharp[System.Windows.Forms.AccessibleObject#6](~/samples/snippets/csharp/VS_Snippets_Winforms/System.Windows.Forms.AccessibleObject/CS/chartcontrol.cs#6)]
[!code-vb[System.Windows.Forms.AccessibleObject#6](~/samples/snippets/visualbasic/VS_Snippets_Winforms/System.Windows.Forms.AccessibleObject/VB/chartcontrol.vb#6)]
]]></format>
</remarks>
<exception cref="T:System.Runtime.InteropServices.COMException">The selection cannot be performed.</exception>
<block subset="none" type="overrides">
<para>All objects that can be selected or receive the keyboard focus must support this method.</para>
</block>
</Docs>
</Member>
<Member MemberName="State">
<MemberSignature Language="C#" Value="public virtual System.Windows.Forms.AccessibleStates State { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance valuetype System.Windows.Forms.AccessibleStates State" />
<MemberSignature Language="DocId" Value="P:System.Windows.Forms.AccessibleObject.State" />
<MemberSignature Language="VB.NET" Value="Public Overridable ReadOnly Property State As AccessibleStates" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; virtual property System::Windows::Forms::AccessibleStates State { System::Windows::Forms::AccessibleStates get(); };" />
<MemberSignature Language="F#" Value="member this.State : System.Windows.Forms.AccessibleStates" Usage="System.Windows.Forms.AccessibleObject.State" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Windows.Forms.AccessibleStates</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the state of this accessible object.</summary>
<value>One of the <see cref="T:System.Windows.Forms.AccessibleStates" /> values, or <see cref="F:System.Windows.Forms.AccessibleStates.None" />, if no state has been set.</value>
<remarks>
<format type="text/markdown"><![CDATA[
## Examples
The following example demonstrates the creation of an accessibility-aware chart control, using the <xref:System.Windows.Forms.AccessibleObject> and <xref:System.Windows.Forms.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 <xref:System.Windows.Forms.Control.CreateAccessibilityInstance%2A> method to provide custom accessible information for the chart control. Since the chart legend is not an actual <xref:System.Windows.Forms.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 <xref:System.Windows.Forms.AccessibleObject.GetChild%2A> 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 <xref:System.Windows.Forms.AccessibleObject.State%2A> property. See the <xref:System.Windows.Forms.AccessibleObject> class overview for the complete code example.
[!code-cpp[System.Windows.Forms.AccessibleObject#4](~/samples/snippets/cpp/VS_Snippets_Winforms/System.Windows.Forms.AccessibleObject/CPP/chartcontrol.cpp#4)]
[!code-csharp[System.Windows.Forms.AccessibleObject#4](~/samples/snippets/csharp/VS_Snippets_Winforms/System.Windows.Forms.AccessibleObject/CS/chartcontrol.cs#4)]
[!code-vb[System.Windows.Forms.AccessibleObject#4](~/samples/snippets/visualbasic/VS_Snippets_Winforms/System.Windows.Forms.AccessibleObject/VB/chartcontrol.vb#4)]
]]></format>
</remarks>
<block subset="none" type="overrides">
<para>All objects should support this property.</para>
</block>
<altmember cref="P:System.Windows.Forms.AccessibleObject.Bounds" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.DefaultAction" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Description" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Help" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.KeyboardShortcut" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Name" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Parent" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Role" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Value" />
</Docs>
</Member>
<Member MemberName="System.Reflection.IReflect.GetField">
<MemberSignature Language="C#" Value="System.Reflection.FieldInfo IReflect.GetField (string name, System.Reflection.BindingFlags bindingAttr);" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance class System.Reflection.FieldInfo System.Reflection.IReflect.GetField(string name, valuetype System.Reflection.BindingFlags bindingAttr) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.System#Reflection#IReflect#GetField(System.String,System.Reflection.BindingFlags)" />
<MemberSignature Language="VB.NET" Value="Function GetField (name As String, bindingAttr As BindingFlags) As FieldInfo Implements IReflect.GetField" />
<MemberSignature Language="C++ CLI" Value=" virtual System::Reflection::FieldInfo ^ System.Reflection.IReflect.GetField(System::String ^ name, System::Reflection::BindingFlags bindingAttr) = System::Reflection::IReflect::GetField;" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:System.Reflection.IReflect.GetField(System.String,System.Reflection.BindingFlags)</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Reflection.FieldInfo</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="name" Type="System.String" />
<Parameter Name="bindingAttr" Type="System.Reflection.BindingFlags" />
</Parameters>
<Docs>
<param name="name">The name of the field to find.</param>
<param name="bindingAttr">The binding attributes used to control the search.</param>
<summary>Gets the <see cref="T:System.Reflection.FieldInfo" /> object corresponding to the specified field and binding flag. For a description of this member, see <see cref="M:System.Reflection.IReflect.GetField(System.String,System.Reflection.BindingFlags)" />.</summary>
<returns>A <see cref="T:System.Reflection.FieldInfo" /> object containing the field information for the named object that meets the search constraints specified in <paramref name="bindingAttr" />.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
This member is an explicit interface member implementation. It can be used only when the <xref:System.Windows.Forms.AccessibleObject> instance is cast to an <xref:System.Reflection.IReflect> interface.
]]></format>
</remarks>
<exception cref="T:System.Reflection.AmbiguousMatchException">The object implements multiple fields with the same name.</exception>
</Docs>
</Member>
<Member MemberName="System.Reflection.IReflect.GetFields">
<MemberSignature Language="C#" Value="System.Reflection.FieldInfo[] IReflect.GetFields (System.Reflection.BindingFlags bindingAttr);" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance class System.Reflection.FieldInfo[] System.Reflection.IReflect.GetFields(valuetype System.Reflection.BindingFlags bindingAttr) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.System#Reflection#IReflect#GetFields(System.Reflection.BindingFlags)" />
<MemberSignature Language="VB.NET" Value="Function GetFields (bindingAttr As BindingFlags) As FieldInfo() Implements IReflect.GetFields" />
<MemberSignature Language="C++ CLI" Value=" virtual cli::array &lt;System::Reflection::FieldInfo ^&gt; ^ System.Reflection.IReflect.GetFields(System::Reflection::BindingFlags bindingAttr) = System::Reflection::IReflect::GetFields;" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:System.Reflection.IReflect.GetFields(System.Reflection.BindingFlags)</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Reflection.FieldInfo[]</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="bindingAttr" Type="System.Reflection.BindingFlags" />
</Parameters>
<Docs>
<param name="bindingAttr">The binding attributes used to control the search.</param>
<summary>Gets an array of <see cref="T:System.Reflection.FieldInfo" /> objects corresponding to all fields of the current class. For a description of this member, see <see cref="M:System.Reflection.IReflect.GetFields(System.Reflection.BindingFlags)" />.</summary>
<returns>An array of <see cref="T:System.Reflection.FieldInfo" /> objects containing all the field information for this reflection object that meets the search constraints specified in <paramref name="bindingAttr" />.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
Each field must have a unique name. The <xref:System.Reflection.BindingFlags.NonPublic?displayProperty=nameWithType> flag specifies that nonpublic fields are included in the search. The <xref:System.Reflection.BindingFlags.Public?displayProperty=nameWithType> flag specifies that public fields are included in the search.
This member is an explicit interface member implementation. It can be used only when the <xref:System.Windows.Forms.AccessibleObject> instance is cast to an <xref:System.Reflection.IReflect> interface.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="System.Reflection.IReflect.GetMember">
<MemberSignature Language="C#" Value="System.Reflection.MemberInfo[] IReflect.GetMember (string name, System.Reflection.BindingFlags bindingAttr);" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance class System.Reflection.MemberInfo[] System.Reflection.IReflect.GetMember(string name, valuetype System.Reflection.BindingFlags bindingAttr) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.System#Reflection#IReflect#GetMember(System.String,System.Reflection.BindingFlags)" />
<MemberSignature Language="VB.NET" Value="Function GetMember (name As String, bindingAttr As BindingFlags) As MemberInfo() Implements IReflect.GetMember" />
<MemberSignature Language="C++ CLI" Value=" virtual cli::array &lt;System::Reflection::MemberInfo ^&gt; ^ System.Reflection.IReflect.GetMember(System::String ^ name, System::Reflection::BindingFlags bindingAttr) = System::Reflection::IReflect::GetMember;" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:System.Reflection.IReflect.GetMember(System.String,System.Reflection.BindingFlags)</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Reflection.MemberInfo[]</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="name" Type="System.String" />
<Parameter Name="bindingAttr" Type="System.Reflection.BindingFlags" />
</Parameters>
<Docs>
<param name="name">The name of the member to find.</param>
<param name="bindingAttr">The binding attributes used to control the search.</param>
<summary>Gets an array of <see cref="T:System.Reflection.MemberInfo" /> objects corresponding to all public members or to all members that match a specified name. For a description of this member, see <see cref="M:System.Reflection.IReflect.GetMember(System.String,System.Reflection.BindingFlags)" />.</summary>
<returns>An array of <see cref="T:System.Reflection.MemberInfo" /> objects matching the name parameter.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
This member is an explicit interface member implementation. It can be used only when the <xref:System.Windows.Forms.AccessibleObject> instance is cast to an <xref:System.Reflection.IReflect> interface.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="System.Reflection.IReflect.GetMembers">
<MemberSignature Language="C#" Value="System.Reflection.MemberInfo[] IReflect.GetMembers (System.Reflection.BindingFlags bindingAttr);" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance class System.Reflection.MemberInfo[] System.Reflection.IReflect.GetMembers(valuetype System.Reflection.BindingFlags bindingAttr) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.System#Reflection#IReflect#GetMembers(System.Reflection.BindingFlags)" />
<MemberSignature Language="VB.NET" Value="Function GetMembers (bindingAttr As BindingFlags) As MemberInfo() Implements IReflect.GetMembers" />
<MemberSignature Language="C++ CLI" Value=" virtual cli::array &lt;System::Reflection::MemberInfo ^&gt; ^ System.Reflection.IReflect.GetMembers(System::Reflection::BindingFlags bindingAttr) = System::Reflection::IReflect::GetMembers;" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:System.Reflection.IReflect.GetMembers(System.Reflection.BindingFlags)</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Reflection.MemberInfo[]</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="bindingAttr" Type="System.Reflection.BindingFlags" />
</Parameters>
<Docs>
<param name="bindingAttr">The binding attributes used to control the search.</param>
<summary>Gets an array of <see cref="T:System.Reflection.MemberInfo" /> objects corresponding either to all public members or to all members of the current class. For a description of this member, see <see cref="M:System.Reflection.IReflect.GetMembers(System.Reflection.BindingFlags)" />.</summary>
<returns>An array of <see cref="T:System.Reflection.MemberInfo" /> objects containing all the member information for this reflection object.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
This member is an explicit interface member implementation. It can be used only when the <xref:System.Windows.Forms.AccessibleObject> instance is cast to an <xref:System.Reflection.IReflect> interface.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="System.Reflection.IReflect.GetMethod">
<MemberSignature Language="C#" Value="System.Reflection.MethodInfo IReflect.GetMethod (string name, System.Reflection.BindingFlags bindingAttr);" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance class System.Reflection.MethodInfo System.Reflection.IReflect.GetMethod(string name, valuetype System.Reflection.BindingFlags bindingAttr) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.System#Reflection#IReflect#GetMethod(System.String,System.Reflection.BindingFlags)" />
<MemberSignature Language="VB.NET" Value="Function GetMethod (name As String, bindingAttr As BindingFlags) As MethodInfo Implements IReflect.GetMethod" />
<MemberSignature Language="C++ CLI" Value=" virtual System::Reflection::MethodInfo ^ System.Reflection.IReflect.GetMethod(System::String ^ name, System::Reflection::BindingFlags bindingAttr) = System::Reflection::IReflect::GetMethod;" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:System.Reflection.IReflect.GetMethod(System.String,System.Reflection.BindingFlags)</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Reflection.MethodInfo</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="name" Type="System.String" />
<Parameter Name="bindingAttr" Type="System.Reflection.BindingFlags" />
</Parameters>
<Docs>
<param name="name">The name of the member to find.</param>
<param name="bindingAttr">The binding attributes used to control the search.</param>
<summary>Gets a <see cref="T:System.Reflection.MethodInfo" /> object corresponding to a specified method under specified search constraints. For a description of this member, see <see cref="M:System.Reflection.IReflect.GetMethod(System.String,System.Reflection.BindingFlags)" />.</summary>
<returns>A <see cref="T:System.Reflection.MethodInfo" /> object containing the method information, with the match being based on the method name and search constraints specified in <paramref name="bindingAttr" />.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
This member is an explicit interface member implementation. It can be used only when the <xref:System.Windows.Forms.AccessibleObject> instance is cast to an <xref:System.Reflection.IReflect> interface.
]]></format>
</remarks>
<exception cref="T:System.Reflection.AmbiguousMatchException">The object implements multiple methods with the same name.</exception>
</Docs>
</Member>
<Member MemberName="System.Reflection.IReflect.GetMethod">
<MemberSignature Language="C#" Value="System.Reflection.MethodInfo IReflect.GetMethod (string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, Type[] types, System.Reflection.ParameterModifier[] modifiers);" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance class System.Reflection.MethodInfo System.Reflection.IReflect.GetMethod(string name, valuetype System.Reflection.BindingFlags bindingAttr, class System.Reflection.Binder binder, class System.Type[] types, valuetype System.Reflection.ParameterModifier[] modifiers) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.System#Reflection#IReflect#GetMethod(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type[],System.Reflection.ParameterModifier[])" />
<MemberSignature Language="C++ CLI" Value=" virtual System::Reflection::MethodInfo ^ System.Reflection.IReflect.GetMethod(System::String ^ name, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array &lt;Type ^&gt; ^ types, cli::array &lt;System::Reflection::ParameterModifier&gt; ^ modifiers) = System::Reflection::IReflect::GetMethod;" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:System.Reflection.IReflect.GetMethod(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type[],System.Reflection.ParameterModifier[])</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Reflection.MethodInfo</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="name" Type="System.String" />
<Parameter Name="bindingAttr" Type="System.Reflection.BindingFlags" />
<Parameter Name="binder" Type="System.Reflection.Binder" />
<Parameter Name="types" Type="System.Type[]" />
<Parameter Name="modifiers" Type="System.Reflection.ParameterModifier[]" />
</Parameters>
<Docs>
<param name="name">The name of the member to find.</param>
<param name="bindingAttr">The binding attributes used to control the search.</param>
<param name="binder">An object that implements <see cref="T:System.Reflection.Binder" />, containing properties related to this method.</param>
<param name="types">An array used to choose among overloaded methods.</param>
<param name="modifiers">An array of parameter modifiers used to make binding work with parameter signatures in which the types have been modified.</param>
<summary>Gets a <see cref="T:System.Reflection.MethodInfo" /> object corresponding to a specified method, using a Type array to choose from among overloaded methods. For a description of this member, see <see cref="M:System.Reflection.IReflect.GetMethod(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type[],System.Reflection.ParameterModifier[])" />.</summary>
<returns>The requested method that matches all the specified parameters.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
The return value is a match based on the method name, the <xref:System.Reflection.BindingFlags?displayProperty=nameWithType> enumeration, the kind of type conversion specified by the `binder` parameter, the overload, and the <xref:System.Reflection.ParameterInfo?displayProperty=nameWithType> that describes the signature of the method.
This member is an explicit interface member implementation. It can be used only when the <xref:System.Windows.Forms.AccessibleObject> instance is cast to an <xref:System.Reflection.IReflect> interface.
]]></format>
</remarks>
<exception cref="T:System.Reflection.AmbiguousMatchException">The object implements multiple methods with the same name.</exception>
</Docs>
</Member>
<Member MemberName="System.Reflection.IReflect.GetMethods">
<MemberSignature Language="C#" Value="System.Reflection.MethodInfo[] IReflect.GetMethods (System.Reflection.BindingFlags bindingAttr);" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance class System.Reflection.MethodInfo[] System.Reflection.IReflect.GetMethods(valuetype System.Reflection.BindingFlags bindingAttr) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.System#Reflection#IReflect#GetMethods(System.Reflection.BindingFlags)" />
<MemberSignature Language="VB.NET" Value="Function GetMethods (bindingAttr As BindingFlags) As MethodInfo() Implements IReflect.GetMethods" />
<MemberSignature Language="C++ CLI" Value=" virtual cli::array &lt;System::Reflection::MethodInfo ^&gt; ^ System.Reflection.IReflect.GetMethods(System::Reflection::BindingFlags bindingAttr) = System::Reflection::IReflect::GetMethods;" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:System.Reflection.IReflect.GetMethods(System.Reflection.BindingFlags)</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Reflection.MethodInfo[]</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="bindingAttr" Type="System.Reflection.BindingFlags" />
</Parameters>
<Docs>
<param name="bindingAttr">The binding attributes used to control the search.</param>
<summary>Gets an array of <see cref="T:System.Reflection.MethodInfo" /> objects with all public methods or all methods of the current class. For a description of this member, see <see cref="M:System.Reflection.IReflect.GetMethods(System.Reflection.BindingFlags)" />.</summary>
<returns>An array of <see cref="T:System.Reflection.MethodInfo" /> objects containing all the methods defined for this reflection object that meet the search constraints specified in <see langword="bindingAttr" />.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
This member is an explicit interface member implementation. It can be used only when the <xref:System.Windows.Forms.AccessibleObject> instance is cast to an <xref:System.Reflection.IReflect> interface.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="System.Reflection.IReflect.GetProperties">
<MemberSignature Language="C#" Value="System.Reflection.PropertyInfo[] IReflect.GetProperties (System.Reflection.BindingFlags bindingAttr);" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance class System.Reflection.PropertyInfo[] System.Reflection.IReflect.GetProperties(valuetype System.Reflection.BindingFlags bindingAttr) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.System#Reflection#IReflect#GetProperties(System.Reflection.BindingFlags)" />
<MemberSignature Language="VB.NET" Value="Function GetProperties (bindingAttr As BindingFlags) As PropertyInfo() Implements IReflect.GetProperties" />
<MemberSignature Language="C++ CLI" Value=" virtual cli::array &lt;System::Reflection::PropertyInfo ^&gt; ^ System.Reflection.IReflect.GetProperties(System::Reflection::BindingFlags bindingAttr) = System::Reflection::IReflect::GetProperties;" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:System.Reflection.IReflect.GetProperties(System.Reflection.BindingFlags)</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Reflection.PropertyInfo[]</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="bindingAttr" Type="System.Reflection.BindingFlags" />
</Parameters>
<Docs>
<param name="bindingAttr">The binding attribute used to control the search.</param>
<summary>Gets an array of <see cref="T:System.Reflection.PropertyInfo" /> objects corresponding to all public properties or to all properties of the current class. For a description of this member, see <see cref="M:System.Reflection.IReflect.GetProperties(System.Reflection.BindingFlags)" />.</summary>
<returns>An array of <see cref="T:System.Reflection.PropertyInfo" /> objects for all the properties defined on the reflection object.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
This member is an explicit interface member implementation. It can be used only when the <xref:System.Windows.Forms.AccessibleObject> instance is cast to an <xref:System.Reflection.IReflect> interface.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="System.Reflection.IReflect.GetProperty">
<MemberSignature Language="C#" Value="System.Reflection.PropertyInfo IReflect.GetProperty (string name, System.Reflection.BindingFlags bindingAttr);" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance class System.Reflection.PropertyInfo System.Reflection.IReflect.GetProperty(string name, valuetype System.Reflection.BindingFlags bindingAttr) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.System#Reflection#IReflect#GetProperty(System.String,System.Reflection.BindingFlags)" />
<MemberSignature Language="VB.NET" Value="Function GetProperty (name As String, bindingAttr As BindingFlags) As PropertyInfo Implements IReflect.GetProperty" />
<MemberSignature Language="C++ CLI" Value=" virtual System::Reflection::PropertyInfo ^ System.Reflection.IReflect.GetProperty(System::String ^ name, System::Reflection::BindingFlags bindingAttr) = System::Reflection::IReflect::GetProperty;" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:System.Reflection.IReflect.GetProperty(System.String,System.Reflection.BindingFlags)</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Reflection.PropertyInfo</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="name" Type="System.String" />
<Parameter Name="bindingAttr" Type="System.Reflection.BindingFlags" />
</Parameters>
<Docs>
<param name="name">The name of the property to find.</param>
<param name="bindingAttr">The binding attributes used to control the search.</param>
<summary>Gets a <see cref="T:System.Reflection.PropertyInfo" /> object corresponding to a specified property under specified search constraints. For a description of this member, see <see cref="M:System.Reflection.IReflect.GetProperty(System.String,System.Reflection.BindingFlags)" />.</summary>
<returns>A <see cref="T:System.Reflection.PropertyInfo" /> object for the located property that meets the search constraints specified in <paramref name="bindingAttr" />, or <see langword="null" /> if the property was not located.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
This member is an explicit interface member implementation. It can be used only when the <xref:System.Windows.Forms.AccessibleObject> instance is cast to an <xref:System.Reflection.IReflect> interface.
]]></format>
</remarks>
<exception cref="T:System.Reflection.AmbiguousMatchException">The object implements multiple methods with the same name.</exception>
</Docs>
</Member>
<Member MemberName="System.Reflection.IReflect.GetProperty">
<MemberSignature Language="C#" Value="System.Reflection.PropertyInfo IReflect.GetProperty (string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, Type returnType, Type[] types, System.Reflection.ParameterModifier[] modifiers);" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance class System.Reflection.PropertyInfo System.Reflection.IReflect.GetProperty(string name, valuetype System.Reflection.BindingFlags bindingAttr, class System.Reflection.Binder binder, class System.Type returnType, class System.Type[] types, valuetype System.Reflection.ParameterModifier[] modifiers) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.System#Reflection#IReflect#GetProperty(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[])" />
<MemberSignature Language="C++ CLI" Value=" virtual System::Reflection::PropertyInfo ^ System.Reflection.IReflect.GetProperty(System::String ^ name, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, Type ^ returnType, cli::array &lt;Type ^&gt; ^ types, cli::array &lt;System::Reflection::ParameterModifier&gt; ^ modifiers) = System::Reflection::IReflect::GetProperty;" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:System.Reflection.IReflect.GetProperty(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[])</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Reflection.PropertyInfo</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="name" Type="System.String" />
<Parameter Name="bindingAttr" Type="System.Reflection.BindingFlags" />
<Parameter Name="binder" Type="System.Reflection.Binder" />
<Parameter Name="returnType" Type="System.Type" />
<Parameter Name="types" Type="System.Type[]" />
<Parameter Name="modifiers" Type="System.Reflection.ParameterModifier[]" />
</Parameters>
<Docs>
<param name="name">The name of the member to find.</param>
<param name="bindingAttr">The binding attributes used to control the search.</param>
<param name="binder">An object that implements Binder, containing properties related to this method.</param>
<param name="returnType">An array used to choose among overloaded methods.</param>
<param name="types">An array of parameter modifiers used to make binding work with parameter signatures in which the types have been modified.</param>
<param name="modifiers">An array used to choose the parameter modifiers.</param>
<summary>Gets a <see cref="T:System.Reflection.PropertyInfo" /> object corresponding to a specified property with specified search constraints. For a description of this member, see <see cref="M:System.Reflection.IReflect.GetProperty(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[])" />.</summary>
<returns>A <see cref="T:System.Reflection.PropertyInfo" /> object for the located property, if a property with the specified name was located in this reflection object, or <see langword="null" /> if the property was not located.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
This member is an explicit interface member implementation. It can be used only when the <xref:System.Windows.Forms.AccessibleObject> instance is cast to an <xref:System.Reflection.IReflect> interface.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="System.Reflection.IReflect.InvokeMember">
<MemberSignature Language="C#" Value="object IReflect.InvokeMember (string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object target, object[] args, System.Reflection.ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, string[] namedParameters);" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance object System.Reflection.IReflect.InvokeMember(string name, valuetype System.Reflection.BindingFlags invokeAttr, class System.Reflection.Binder binder, object target, object[] args, valuetype System.Reflection.ParameterModifier[] modifiers, class System.Globalization.CultureInfo culture, string[] namedParameters) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.System#Reflection#IReflect#InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[])" />
<MemberSignature Language="C++ CLI" Value=" virtual System::Object ^ System.Reflection.IReflect.InvokeMember(System::String ^ name, System::Reflection::BindingFlags invokeAttr, System::Reflection::Binder ^ binder, System::Object ^ target, cli::array &lt;System::Object ^&gt; ^ args, cli::array &lt;System::Reflection::ParameterModifier&gt; ^ modifiers, System::Globalization::CultureInfo ^ culture, cli::array &lt;System::String ^&gt; ^ namedParameters) = System::Reflection::IReflect::InvokeMember;" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:System.Reflection.IReflect.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[])</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Object</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="name" Type="System.String" />
<Parameter Name="invokeAttr" Type="System.Reflection.BindingFlags" />
<Parameter Name="binder" Type="System.Reflection.Binder" />
<Parameter Name="target" Type="System.Object" />
<Parameter Name="args" Type="System.Object[]" />
<Parameter Name="modifiers" Type="System.Reflection.ParameterModifier[]" />
<Parameter Name="culture" Type="System.Globalization.CultureInfo" />
<Parameter Name="namedParameters" Type="System.String[]" />
</Parameters>
<Docs>
<param name="name">The name of the member to find.</param>
<param name="invokeAttr">One of the <see cref="T:System.Reflection.BindingFlags" /> invocation attributes.</param>
<param name="binder">One of the <see cref="T:System.Reflection.BindingFlags" /> bit flags. Implements Binder, containing properties related to this method.</param>
<param name="target">The object on which to invoke the specified member. This parameter is ignored for static members.</param>
<param name="args">An array of objects that contains the number, order, and type of the parameters of the member to be invoked. This is an empty array if there are no parameters.</param>
<param name="modifiers">An array of <see cref="T:System.Reflection.ParameterModifier" /> objects.</param>
<param name="culture">An instance of <see cref="T:System.Globalization.CultureInfo" /> used to govern the coercion of types.</param>
<param name="namedParameters">A String array of parameters.</param>
<summary>Invokes a specified member. For a description of this member, see <see cref="M:System.Reflection.IReflect.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[])" />.</summary>
<returns>The specified member.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
The `invokeAttr` parameter may be a constructor, method, property, or field. A suitable invocation attribute must be specified. Invoke the default member of a class by passing the empty string ("") as the name of the member.
The `modifiers` parameter has the same length as the `args` parameter, representing the invoked member's argument attributes in the metadata. A parameter can have the following attributes: pdIn, pdOut, pdRetval, pdOptional, and pdHasDefault. These represent [In], [Out], [retval], [optional], and a default parameter, respectively.
This member is an explicit interface member implementation. It can be used only when the <xref:System.Windows.Forms.AccessibleObject> instance is cast to an <xref:System.Reflection.IReflect> interface.
]]></format>
</remarks>
<exception cref="T:System.ArgumentException">
<paramref name="invokeAttr" /> is <see cref="F:System.Reflection.BindingFlags.CreateInstance" /> and another bit flag is also set.
-or-
<paramref name="invokeAttr" /> is not <see cref="F:System.Reflection.BindingFlags.CreateInstance" /> and name is <see langword="null" />.
-or-
<paramref name="invokeAttr" /> is not an invocation attribute from <see cref="T:System.Reflection.BindingFlags" />.
-or-
<paramref name="invokeAttr" /> specifies both get and set for a property or field.
-or-
<paramref name="invokeAttr" /> specifies both a field set and an Invoke method.<paramref name="args" /> is provided for a field get operation.
-or-
More than one argument is specified for a field set operation.</exception>
<exception cref="T:System.MissingFieldException">The field or property cannot be found.</exception>
<exception cref="T:System.MissingMethodException">The method cannot be found.</exception>
<exception cref="T:System.Security.SecurityException">A private member is invoked without the necessary <see cref="T:System.Security.Permissions.ReflectionPermission" />.</exception>
</Docs>
</Member>
<Member MemberName="System.Reflection.IReflect.UnderlyingSystemType">
<MemberSignature Language="C#" Value="Type System.Reflection.IReflect.UnderlyingSystemType { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance class System.Type System.Reflection.IReflect.UnderlyingSystemType" />
<MemberSignature Language="DocId" Value="P:System.Windows.Forms.AccessibleObject.System#Reflection#IReflect#UnderlyingSystemType" />
<MemberSignature Language="VB.NET" Value=" ReadOnly Property UnderlyingSystemType As Type Implements IReflect.UnderlyingSystemType" />
<MemberSignature Language="C++ CLI" Value="property Type ^ System::Reflection::IReflect::UnderlyingSystemType { Type ^ get(); };" />
<MemberSignature Language="F#" Usage="System.Reflection.IReflect.UnderlyingSystemType" />
<MemberType>Property</MemberType>
<Implements>
<InterfaceMember>P:System.Reflection.IReflect.UnderlyingSystemType</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Type</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the underlying type that represents the <see cref="T:System.Reflection.IReflect" /> object. For a description of this member, see <see cref="P:System.Reflection.IReflect.UnderlyingSystemType" />.</summary>
<value>The underlying type that represents the <see cref="T:System.Reflection.IReflect" /> object.</value>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
This member is an explicit interface member implementation. It can be used only when the <xref:System.Windows.Forms.AccessibleObject> instance is cast to an <xref:System.Reflection.IReflect> interface.
]]></format>
</remarks>
</Docs>
</Member>
<MemberGroup MemberName="UseStdAccessibleObjects">
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Docs>
<summary>Associates an object with an instance of an <see cref="T:System.Windows.Forms.AccessibleObject" />.</summary>
</Docs>
</MemberGroup>
<Member MemberName="UseStdAccessibleObjects">
<MemberSignature Language="C#" Value="protected void UseStdAccessibleObjects (IntPtr handle);" />
<MemberSignature Language="ILAsm" Value=".method familyhidebysig instance void UseStdAccessibleObjects(native int handle) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.UseStdAccessibleObjects(System.IntPtr)" />
<MemberSignature Language="VB.NET" Value="Protected Sub UseStdAccessibleObjects (handle As IntPtr)" />
<MemberSignature Language="C++ CLI" Value="protected:&#xA; void UseStdAccessibleObjects(IntPtr handle);" />
<MemberSignature Language="F#" Value="member this.UseStdAccessibleObjects : nativeint -&gt; unit" Usage="accessibleObject.UseStdAccessibleObjects handle" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="handle" Type="System.IntPtr" />
</Parameters>
<Docs>
<param name="handle">An <see cref="T:System.IntPtr" /> that contains the handle of the object.</param>
<summary>Associates an object with an instance of an <see cref="T:System.Windows.Forms.AccessibleObject" /> based on the handle of the object.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
Server applications can call this function when they contain a custom UI object that is similar to a system-provided object. Server applications call `CreateStdAccessibleObject` and override the <xref:Accessibility.IAccessible> methods and properties as needed to match their custom object. This approach saves server developers the work of fully implementing all the <xref:Accessibility.IAccessible> properties and methods. This function is similar to `CreateStdAccessibleProxy`, except that `CreateStdAccessibleProxy` enables you to specify the class name as a parameter, whereas `CreateStdAccessibleObject` uses the class name associated with the `hwnd`.
Calling this version of the `UseStdAccessible` is the same as calling the two parameter version with an objid of CLIENT.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="UseStdAccessibleObjects">
<MemberSignature Language="C#" Value="protected void UseStdAccessibleObjects (IntPtr handle, int objid);" />
<MemberSignature Language="ILAsm" Value=".method familyhidebysig instance void UseStdAccessibleObjects(native int handle, int32 objid) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Windows.Forms.AccessibleObject.UseStdAccessibleObjects(System.IntPtr,System.Int32)" />
<MemberSignature Language="VB.NET" Value="Protected Sub UseStdAccessibleObjects (handle As IntPtr, objid As Integer)" />
<MemberSignature Language="C++ CLI" Value="protected:&#xA; void UseStdAccessibleObjects(IntPtr handle, int objid);" />
<MemberSignature Language="F#" Value="member this.UseStdAccessibleObjects : nativeint * int -&gt; unit" Usage="accessibleObject.UseStdAccessibleObjects (handle, objid)" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="handle" Type="System.IntPtr" />
<Parameter Name="objid" Type="System.Int32" />
</Parameters>
<Docs>
<param name="handle">An <see cref="T:System.IntPtr" /> that contains the handle of the object.</param>
<param name="objid">An Int that defines the type of object that the <paramref name="handle" /> parameter refers to.</param>
<summary>Associates an object with an instance of an <see cref="T:System.Windows.Forms.AccessibleObject" /> based on the handle and the object id of the object.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
Creates an accessible object with the methods and properties for the specified type of system-provided user interface element.
Server applications can call this function when they contain a custom UI object that is similar to a system-provided object. Server applications call `CreateStdAccessibleObject` and override the <xref:Accessibility.IAccessible> methods and properties as needed to match their custom object. This approach saves server developers the work of fully implementing all the <xref:Accessibility.IAccessible> properties and methods.
Valid `objid` values.
|Object|Value|Description|
|------------|-----------|-----------------|
|ALERT|0xFFFFFFF6|Refers to a message associated with a window or application.|
|CARET|0xFFFFFFF8|Refers to the text insertion bar (caret) in the window.|
|CLIENT|0xFFFFFFFC|Refers to the window's client area. In most cases, the operating system controls the frame elements, and the client object contains all elements that the application controls.|
|CURSOR|0xFFFFFFF7|Refers to the mouse pointer. There is only one mouse pointer in the system and it is not a child of a window.|
|HSCROLL|0xFFFFFFFA|Refers to the window's horizontal scroll bar.|
|MENU|0xFFFFFFFD|Refers to the window's menu bar.|
|SIZEGRIP|0xFFFFFFF9|Refers to the window's size grip, an optional frame component located at the lower right corner of the window frame.|
|SOUND|0xFFFFFFF5|Refers to a sound object. Sound objects do not have screen locations or children, but do have name and state attributes. They are children of the application playing the sound.|
|SYSMENU|0xFFFFFFFF|Refers to the window's system menu.|
|TITLEBAR|0xFFFFFFFE|Refers to the window's title bar.|
|VSCROLL|0xFFFFFFFB|Refers to the window's vertical scroll bar.|
|WINDOW|0x00000000|Refers to the window itself rather than to a child object.|
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="Value">
<MemberSignature Language="C#" Value="public virtual string Value { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance string Value" />
<MemberSignature Language="DocId" Value="P:System.Windows.Forms.AccessibleObject.Value" />
<MemberSignature Language="VB.NET" Value="Public Overridable Property Value As String" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; virtual property System::String ^ Value { System::String ^ get(); void set(System::String ^ value); };" />
<MemberSignature Language="F#" Value="member this.Value : string with get, set" Usage="System.Windows.Forms.AccessibleObject.Value" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Windows.Forms</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.String</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets or sets the value of an accessible object.</summary>
<value>The value of an accessible object, or <see langword="null" /> if the object has no value set.</value>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
Typically, the <xref:System.Windows.Forms.AccessibleObject.Value%2A> property represents visual information contained by the object. Not all objects support the <xref:System.Windows.Forms.AccessibleObject.Value%2A> property.
In most cases, the <xref:System.Windows.Forms.AccessibleObject.Value%2A> property is used to tell the client about what visual information an object contains. For example, the value for an edit control is the text it contains, but a menu item has no value.
The <xref:System.Windows.Forms.AccessibleObject.Value%2A> property can provide hierarchical information in cases such as a tree view control. Although the parent object in the tree view control does not provide information in the <xref:System.Windows.Forms.AccessibleObject.Value%2A> property, each item within the control has a zero-based value that represents its level within the hierarchy. Top-level items have a value of zero, second-level items have a value of one, and so on.
> [!NOTE]
> The values returned from scroll bar and trackbar accessible objects indicate percentages, so they are integers between 0 and 100, inclusive.
]]></format>
</remarks>
<exception cref="T:System.Runtime.InteropServices.COMException">The value cannot be set or retrieved.</exception>
<altmember cref="P:System.Windows.Forms.AccessibleObject.Bounds" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.DefaultAction" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Description" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Help" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.KeyboardShortcut" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Name" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Parent" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.Role" />
<altmember cref="P:System.Windows.Forms.AccessibleObject.State" />
</Docs>
</Member>
</Members>
</Type>
You can’t perform that action at this time.