This topic has not yet been rated - Rate this topic

Control.ControlAccessibleObject Class

Provides information about a control that can be used by an accessibility application.

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)
[ComVisibleAttribute(true)]
public class ControlAccessibleObject : AccessibleObject

The Control.ControlAccessibleObject type exposes the following members.

  Name Description
Public method Control.ControlAccessibleObject Initializes a new instance of the Control.ControlAccessibleObject class.
Top
  Name Description
Public property Bounds Gets the location and size of the accessible object. (Inherited from AccessibleObject.)
Public property DefaultAction Gets a string that describes the default action of the object. Not all objects have a default action. (Overrides AccessibleObject.DefaultAction.)
Public property Description Gets the description of the Control.ControlAccessibleObject. (Overrides AccessibleObject.Description.)
Public property Handle Gets or sets the handle of the accessible object.
Public property Help Gets the description of what the object does or how the object is used. (Overrides AccessibleObject.Help.)
Public property KeyboardShortcut Gets the object shortcut key or access key for an accessible object. (Overrides AccessibleObject.KeyboardShortcut.)
Public property Name Gets or sets the accessible object name. (Overrides AccessibleObject.Name.)
Public property Owner Gets the owner of the accessible object.
Public property Parent Gets the parent of an accessible object. (Overrides AccessibleObject.Parent.)
Public property Role Gets the role of this accessible object. (Overrides AccessibleObject.Role.)
Public property State Gets the state of this accessible object. (Inherited from AccessibleObject.)
Public property Value Gets or sets the value of an accessible object. (Inherited from AccessibleObject.)
Top
  Name Description
Public method CreateObjRef Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object. (Inherited from MarshalByRefObject.)
Public method DoDefaultAction Performs the default action associated with this accessible object. (Inherited from AccessibleObject.)
Public method Equals(Object) Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected method Finalize Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public method GetChild Retrieves the accessible child corresponding to the specified index. (Inherited from AccessibleObject.)
Public method GetChildCount Retrieves the number of children belonging to an accessible object. (Inherited from AccessibleObject.)
Public method GetFocused Retrieves the object that has the keyboard focus. (Inherited from AccessibleObject.)
Public method GetHashCode Serves as a hash function for a particular type. (Inherited from Object.)
Public method GetHelpTopic Gets an identifier for a Help topic and the path to the Help file associated with this accessible object. (Overrides AccessibleObject.GetHelpTopic(String).)
Public method GetLifetimeService Retrieves the current lifetime service object that controls the lifetime policy for this instance. (Inherited from MarshalByRefObject.)
Public method GetSelected Retrieves the currently selected child. (Inherited from AccessibleObject.)
Public method GetType Gets the Type of the current instance. (Inherited from Object.)
Public method HitTest Retrieves the child object at the specified screen coordinates. (Inherited from AccessibleObject.)
Public method InitializeLifetimeService Obtains a lifetime service object to control the lifetime policy for this instance. (Inherited from MarshalByRefObject.)
Protected method MemberwiseClone() Creates a shallow copy of the current Object. (Inherited from Object.)
Protected method MemberwiseClone(Boolean) Creates a shallow copy of the current MarshalByRefObject object. (Inherited from MarshalByRefObject.)
Public method Navigate Navigates to another accessible object. (Inherited from AccessibleObject.)
Public method NotifyClients(AccessibleEvents) Notifies accessibility client applications of the specified AccessibleEvents.
Public method NotifyClients(AccessibleEvents, Int32) Notifies the accessibility client applications of the specified AccessibleEvents for the specified child control.
Public method NotifyClients(AccessibleEvents, Int32, Int32) Notifies the accessibility client applications of the specified AccessibleEvents for the specified child control, giving the identification of the AccessibleObject.
Public method Select Modifies the selection or moves the keyboard focus of the accessible object. (Inherited from AccessibleObject.)
Public method ToString Returns a string that represents the current object. (Overrides Object.ToString().)
Protected method UseStdAccessibleObjects(IntPtr) Infrastructure. Associates an object with an instance of an AccessibleObject based on the handle of the object. (Inherited from AccessibleObject.)
Protected method UseStdAccessibleObjects(IntPtr, Int32) Infrastructure. Associates an object with an instance of an AccessibleObject based on the handle and the object id of the object. (Inherited from AccessibleObject.)
Top
  Name Description
Explicit interface implemetation Private property IAccessible.accChildCount Infrastructure. Gets the number of child interfaces that belong to this object. For a description of this member, see IAccessible.accChildCount. (Inherited from AccessibleObject.)
Explicit interface implemetation Private method IAccessible.accDoDefaultAction Infrastructure. Performs the specified object's default action. Not all objects have a default action. For a description of this member, see IAccessible.accDoDefaultAction. (Inherited from AccessibleObject.)
Explicit interface implemetation Private property IAccessible.accFocus Infrastructure. Gets the object that has the keyboard focus. For a description of this member, see IAccessible.accFocus. (Inherited from AccessibleObject.)
Explicit interface implemetation Private method IAccessible.accHitTest Infrastructure. Gets the child object at the specified screen coordinates. For a description of this member, see IAccessible.accHitTest. (Inherited from AccessibleObject.)
Explicit interface implemetation Private method IAccessible.accLocation Infrastructure. Gets the object's current screen location. For a description of this member, see IAccessible.accLocation. (Inherited from AccessibleObject.)
Explicit interface implemetation Private method IAccessible.accNavigate Infrastructure. Navigates to an accessible object relative to the current object. For a description of this member, see IAccessible.accNavigate. (Inherited from AccessibleObject.)
Explicit interface implemetation Private property IAccessible.accParent Infrastructure. Gets the parent accessible object of this object. For a description of this member, see IAccessible.accParent. (Inherited from AccessibleObject.)
Explicit interface implemetation Private method IAccessible.accSelect Infrastructure. Modifies the selection or moves the keyboard focus of the accessible object. For a description of this member, see IAccessible.accSelect. (Inherited from AccessibleObject.)
Explicit interface implemetation Private property IAccessible.accSelection Infrastructure. Gets the selected child objects of an accessible object. For a description of this member, see IAccessible.accSelection. (Inherited from AccessibleObject.)
Explicit interface implemetation Private method IReflect.GetField Infrastructure. Gets the System.Reflection.FieldInfo object corresponding to the specified field and binding flag. For a description of this member, see IReflect.GetField. (Inherited from AccessibleObject.)
Explicit interface implemetation Private method IReflect.GetFields Infrastructure. Gets an array of System.Reflection.FieldInfo objects corresponding to all fields of the current class. For a description of this member, see IReflect.GetFields. (Inherited from AccessibleObject.)
Explicit interface implemetation Private method IReflect.GetMember Infrastructure. Gets an array of 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 IReflect.GetMember. (Inherited from AccessibleObject.)
Explicit interface implemetation Private method IReflect.GetMembers Infrastructure. Gets an array of 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 IReflect.GetMembers. (Inherited from AccessibleObject.)
Explicit interface implemetation Private method IReflect.GetMethod(String, BindingFlags) Infrastructure. Gets a System.Reflection.MethodInfo object corresponding to a specified method under specified search constraints. For a description of this member, see IReflect.GetMethod. (Inherited from AccessibleObject.)
Explicit interface implemetation Private method IReflect.GetMethod(String, BindingFlags, Binder, Type[], ParameterModifier[]) Infrastructure. Gets a 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 IReflect.GetMethod. (Inherited from AccessibleObject.)
Explicit interface implemetation Private method IReflect.GetMethods Infrastructure. Gets an array of System.Reflection.MethodInfo objects with all public methods or all methods of the current class. For a description of this member, see IReflect.GetMethods. (Inherited from AccessibleObject.)
Explicit interface implemetation Private method IReflect.GetProperties Infrastructure. Gets an array of System.Reflection.PropertyInfo objects corresponding to all public properties or to all properties of the current class. For a description of this member, see IReflect.GetProperties. (Inherited from AccessibleObject.)
Explicit interface implemetation Private method IReflect.GetProperty(String, BindingFlags) Infrastructure. Gets a System.Reflection.PropertyInfo object corresponding to a specified property under specified search constraints. For a description of this member, see IReflect.GetProperty. (Inherited from AccessibleObject.)
Explicit interface implemetation Private method IReflect.GetProperty(String, BindingFlags, Binder, Type, Type[], ParameterModifier[]) Infrastructure. Gets a System.Reflection.PropertyInfo object corresponding to a specified property with specified search constraints. For a description of this member, see IReflect.GetProperty. (Inherited from AccessibleObject.)
Explicit interface implemetation Private method IReflect.InvokeMember Infrastructure. Invokes a specified member. For a description of this member, see IReflect.InvokeMember. (Inherited from AccessibleObject.)
Explicit interface implemetation Private property IReflect.UnderlyingSystemType Infrastructure. Gets the underlying type that represents the IReflect object. For a description of this member, see IReflect.UnderlyingSystemType. (Inherited from AccessibleObject.)
Top

Windows Forms has accessibility support built in, and provides information about your application that enables it to work with accessibility client applications. Examples of accessibility client applications are: screen enlarger and reviewer utilities, voice input utilities, on-screen keyboards, alternative input devices, and keyboard enhancement utilities. Sometimes you will want to provide additional information to accessibility client applications. There are two ways of providing this additional information. To provide limited accessibility information for existing controls, set the control's AccessibleName, AccessibleDescription, AccessibleDefaultActionDescription, and AccessibleRole property values, which will be reported to accessibility client applications. Alternatively, if you require more accessibility information to be included with your control, you can write your own class deriving from the AccessibleObject or Control.ControlAccessibleObject classes. For example, if you are writing your own control that is not derived from the common controls or you require such operations as hit testing within your control, you should create a Control.ControlAccessibleObject for your control by calling the CreateAccessibilityInstance method.

Note Note

If you override the AccessibleObject.GetChild method, you must also override the AccessibleObject.GetChildCount method. To get or set the AccessibilityObject property, you must add a reference to the Accessibility assembly installed with the .NET Framework.

For more information about accessible objects, see the Active Accessibility section of the MSDN Library.

The following code example creates a check box control that derives from the CheckBox class and creates a custom Control.ControlAccessibleObject for the derived class to use. The derived class, MyCheckBox, has an Appearance of Button by default so it appears as a toggle button. The derived Control.ControlAccessibleObject class, MyCheckBoxControlAccessibleObject, overrides three properties to account for the difference in appearance.


using System;
using System.Windows.Forms;
using Accessibility;
using System.Drawing;

namespace MyCustomControls
{
   public class MyCheckBox : CheckBox
   {
      public MyCheckBox()
      {
         // Make the check box appear like a toggle button.
         this.Appearance = Appearance.Button;
         // Center the text on the button.
         this.TextAlign = ContentAlignment.MiddleCenter;
	 // Set the AccessibleDescription text.
         this.AccessibleDescription = "A toggle style button.";
      }

      // Create an instance of the AccessibleObject 
      // defined for the 'MyCheckBox' control
      protected override AccessibleObject CreateAccessibilityInstance() 
      {
         return new MyCheckBoxAccessibleObject(this);
      }
   }

   // Accessible object for use with the 'MyCheckBox' control.
   internal class MyCheckBoxAccessibleObject : Control.ControlAccessibleObject 
   {
      public MyCheckBoxAccessibleObject(MyCheckBox owner) : base(owner) 
      {

      }

      public override string DefaultAction 
      {
         get
         {
            // Return the DefaultAction based upon 
            // the state of the control.
            if( ((MyCheckBox)Owner).Checked )
            {
               return "Toggle button up";
            }
            else
            {
               return "Toggle button down";
            }
         }
      }

      public override string Name 
      {
         get 
         {
            // Return the Text property of the control 
            // if the AccessibleName is null.
            string name = Owner.AccessibleName;
            if (name != null) 
            {
               return name;
            }
            return ((MyCheckBox)Owner).Text;
         }

         set
         {
            base.Name = value;
         }
      }            

      public override AccessibleRole Role 
      {
         get 
         {
            // Since the check box appears like a button,
            // make the Role the same as a button.
            return AccessibleRole.PushButton;
         }
      }
   }
}


.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ