共用方式為


Control.ControlAccessibleObject 類別

定義

提供可被無障礙應用程式使用的控制項資訊。

public: ref class Control::ControlAccessibleObject : System::Windows::Forms::AccessibleObject
[System.Runtime.InteropServices.ComVisible(true)]
public class Control.ControlAccessibleObject : System.Windows.Forms.AccessibleObject
public class Control.ControlAccessibleObject : System.Windows.Forms.AccessibleObject
[<System.Runtime.InteropServices.ComVisible(true)>]
type Control.ControlAccessibleObject = class
    inherit AccessibleObject
type Control.ControlAccessibleObject = class
    inherit AccessibleObject
Public Class Control.ControlAccessibleObject
Inherits AccessibleObject
繼承
Control.ControlAccessibleObject
繼承
衍生
屬性

範例

以下程式碼範例建立一個勾選框控制項,該控制項源自該 CheckBox 類別,並為衍生類別建立自訂 Control.ControlAccessibleObject 。 衍生類別 MyCheckBox預設有 Appearance 的 , Button 因此它看起來像是切換按鈕。 導出 Control.ControlAccessibleObject 類別 MyCheckBoxControlAccessibleObject,會覆蓋三個性質以解釋外觀差異。

#using <Accessibility.dll>
#using <System.Drawing.dll>
#using <System.dll>
#using <System.Windows.Forms.dll>

using namespace System;
using namespace System::Windows::Forms;
using namespace System::Drawing;

namespace MyCustomControls
{
   public ref class MyCheckBox: public 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.";
      }

   protected:

      // Create an instance of the AccessibleObject
      // defined for the 'MyCheckBox' control
      virtual AccessibleObject^ CreateAccessibilityInstance() override;
   };

   // Accessible Object* for use with the 'MyCheckBox' control.
   private ref class MyCheckBoxAccessibleObject: public Control::ControlAccessibleObject
   {
   public:
      MyCheckBoxAccessibleObject( MyCheckBox^ owner )
         : ControlAccessibleObject( owner )
      {}

      property String^ DefaultAction 
      {
         virtual String^ get() override
         {
            // Return the DefaultAction based upon
            // the state of the control.
            if ( (dynamic_cast<MyCheckBox^>(Owner))->Checked )
            {
               return "Toggle button up";
            }
            else
            {
               return "Toggle button down";
            }
         }
      }

      property String^ Name 
      {
         virtual String^ get() override
         {
            // Return the Text property of the control
            // if the AccessibleName is 0.
            String^ name = Owner->AccessibleName;
            if ( name != nullptr )
            {
               return name;
            }

            return (dynamic_cast<MyCheckBox^>(Owner))->Text;
         }

         virtual void set( String^ value ) override
         {
            ControlAccessibleObject::Name = value;
         }
      }

      property AccessibleRole Role 
      {
         virtual AccessibleRole get() override
         {
            // Since the check box appears like a button,
            // make the Role the same as a button.
            return AccessibleRole::PushButton;
         }
      }
   };

   AccessibleObject^ MyCheckBox::CreateAccessibilityInstance()
   {
      return gcnew MyCheckBoxAccessibleObject( this );
   }
}
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;
         }
      }
   }
}
Imports System.Windows.Forms
Imports Accessibility
Imports System.Drawing

Namespace MyCustomControls
   Public Class MyCheckBox
      Inherits CheckBox
      
      Public Sub New()
         ' Make the check box appear like a toggle button.
         Me.Appearance = Appearance.Button
         ' Center the text on the button.
         Me.TextAlign = ContentAlignment.MiddleCenter
      End Sub
      
      ' Create an instance of the AccessibleObject 
      ' defined for the 'MyCheckBox' control 
      Protected Overrides Function CreateAccessibilityInstance() _
        As AccessibleObject
         Return New MyCheckBoxAccessibleObject(Me)
      End Function
   End Class
    
   ' Accessible object for use with the 'MyCheckBox' control.
   Friend Class MyCheckBoxAccessibleObject
      Inherits Control.ControlAccessibleObject
      
      Public Sub New(owner As MyCheckBox)
         MyBase.New(owner)
      End Sub
      
      Public Overrides ReadOnly Property DefaultAction() As String
         Get
            ' Return the DefaultAction based upon 
            ' the state of the control. 
            If CType(Owner, MyCheckBox).Checked Then
               Return "Toggle button up"
            Else
               Return "Toggle button down"
            End If
         End Get
      End Property
      
      Public Overrides Property Name() As String
         Get
            ' Return the Text property of the control 
            ' if the AccessibleName is null. 
            Dim accessibleName As String = Owner.AccessibleName
            If (accessibleName IsNot Nothing) Then
               Return accessibleName
            End If
            Return CType(Owner, MyCheckBox).Text
         End Get

         Set
            MyBase.Name = value
         End Set
      End Property
      
      Public Overrides ReadOnly Property Role() As AccessibleRole
         Get
            ' Since the check box appears like a button,
            ' make the Role the same as a button. 
            Return AccessibleRole.PushButton
         End Get
      End Property
   End Class
End Namespace

備註

Windows 表單內建無障礙支援,並提供應用程式相關資訊,使其能與無障礙客戶端應用程式協同運作。 無障礙客戶端應用範例包括:螢幕放大與審查工具、語音輸入工具、螢幕鍵盤、替代輸入裝置及鍵盤增強工具。 有時你會想為無障礙客戶端應用程式提供額外資訊。 提供這些額外資訊有兩種方式。 為現有控制項提供有限的無障礙資訊,請設定控制項的 AccessibleNameAccessibleDescriptionAccessibleDefaultActionDescriptionAccessibleRole 屬性值,這些值將回報給無障礙客戶端應用程式。 或者,如果你需要更多無障礙資訊來控制,也可以自行撰寫由 AccessibleObject or Control.ControlAccessibleObject 類別衍生的類別。 例如,如果你自己寫的控制項並非源自常見控制,或需要在控制範圍內進行擊中測試等操作,你應該透過呼叫該CreateAccessibilityInstance方法來建立控制項的 aControl.ControlAccessibleObject

備註

如果你覆寫了這個方法, AccessibleObject.GetChild 你也必須同時覆寫這個 AccessibleObject.GetChildCount 方法。 要取得或設定該 AccessibilityObject 屬性,必須新增一個參考到 .NET Framework 所安裝的 Accessibility 組件語言。

欲了解更多無障礙物件相關資訊,請參閱 Microsoft 主動無障礙功能。

建構函式

名稱 Description
Control.ControlAccessibleObject(Control)

初始化 Control.ControlAccessibleObject 類別的新執行個體。

屬性

名稱 Description
Bounds

取得可存取物件的位置與大小。

(繼承來源 AccessibleObject)
DefaultAction

會取得一個字串來描述物件的預設動作。 並非所有物件都有預設動作。

Description

取得 的描述 Control.ControlAccessibleObject

Handle

取得或設定可存取物件的 handle。

Help

會取得物件的功能或使用方式的描述。

KeyboardShortcut

取得物件快捷鍵或存取鍵,適用於可存取物件。

Name

取得或設定可存取的物件名稱。

Owner

取得可存取物件的擁有者。

Parent

取得可存取物件的父節點。

Role

這就成為這個可及物件的角色。

State

取得這個可存取物件的狀態。

(繼承來源 AccessibleObject)
Value

取得或設定可存取物件的值。

(繼承來源 AccessibleObject)

方法

名稱 Description
CreateObjRef(Type)

建立一個物件,包含產生代理伺服器所需的所有相關資訊,用於與遠端物件通訊。

(繼承來源 MarshalByRefObject)
DoDefaultAction()

執行與此可存取物件相關的預設動作。

(繼承來源 AccessibleObject)
Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetChild(Int32)

擷取對應指定索引的可存取子節點。

(繼承來源 AccessibleObject)
GetChildCount()

取得屬於可及物件的子節點數量。

(繼承來源 AccessibleObject)
GetFocused()

擷取帶有鍵盤焦點的物件。

(繼承來源 AccessibleObject)
GetHashCode()

做為預設哈希函式。

(繼承來源 Object)
GetHelpTopic(String)

會取得一個說明主題的識別碼,以及與此可存取物件相關的說明檔案路徑。

GetLifetimeService()
已淘汰.

取得目前控制此實例生命週期政策的終身服務物件。

(繼承來源 MarshalByRefObject)
GetSelected()

取回目前選取的子。

(繼承來源 AccessibleObject)
GetType()

取得目前實例的 Type

(繼承來源 Object)
HitTest(Int32, Int32)

在指定的螢幕座標取得子物件。

(繼承來源 AccessibleObject)
InitializeLifetimeService()
已淘汰.

取得一個終身服務物件以控制此實例的終身政策。

(繼承來源 MarshalByRefObject)
MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
MemberwiseClone(Boolean)

建立一個 MarshalByRefObject 目前物件的淺層複製品。

(繼承來源 MarshalByRefObject)
Navigate(AccessibleNavigation)

導航到另一個可存取的物件。

(繼承來源 AccessibleObject)
NotifyClients(AccessibleEvents, Int32, Int32)

通知無障礙用戶端應用程式 AccessibleEvents 指定於指定子控制項,並提供該 AccessibleObject

NotifyClients(AccessibleEvents, Int32)

通知無障礙用戶端應用程式指定子控制項的指定 AccessibleEvents 內容。

NotifyClients(AccessibleEvents)

通知無障礙客戶端應用程式指定事項 AccessibleEvents

RaiseAutomationNotification(AutomationNotificationKind, AutomationNotificationProcessing, String)

這會觸發 UI 自動化通知事件。

(繼承來源 AccessibleObject)
RaiseLiveRegionChanged()

會觸發 LiveRegionChanged UI 自動化事件。

Select(AccessibleSelection)

修改選取範圍或移動可存取物件的鍵盤焦點。

(繼承來源 AccessibleObject)
ToString()

傳回表示目前 物件的字串。

UseStdAccessibleObjects(IntPtr, Int32)

根據 handle 和物件的 id 將物件與 的 AccessibleObject 實例關聯起來。

(繼承來源 AccessibleObject)
UseStdAccessibleObjects(IntPtr)

根據物件的句柄將物件與 的 AccessibleObject 實例關聯。

(繼承來源 AccessibleObject)

明確介面實作

名稱 Description
IAccessible.accChildCount

取得屬於此物件的子介面數量。 關於此成員的描述,請參見 accChildCount

(繼承來源 AccessibleObject)
IAccessible.accDoDefaultAction(Object)

執行指定物件的預設動作。 並非所有物件都有預設動作。 關於此成員的描述,請參見 accDoDefaultAction(Object)

(繼承來源 AccessibleObject)
IAccessible.accFocus

會取得帶有鍵盤焦點的物件。 關於此成員的描述,請參見 accFocus

(繼承來源 AccessibleObject)
IAccessible.accHitTest(Int32, Int32)

取得指定畫面座標的子物件。 關於此成員的描述,請參見 accHitTest(Int32, Int32)

(繼承來源 AccessibleObject)
IAccessible.accLocation(Int32, Int32, Int32, Int32, Object)

取得物件目前的螢幕位置。 關於此成員的描述,請參見 accLocation(Int32, Int32, Int32, Int32, Object)

(繼承來源 AccessibleObject)
IAccessible.accNavigate(Int32, Object)

導航到相對於當前物件可存取的物件。 關於此成員的描述,請參見 accNavigate(Int32, Object)

(繼承來源 AccessibleObject)
IAccessible.accParent

取得該物件的父可存取物件。 關於此成員的描述,請參見 accParent

(繼承來源 AccessibleObject)
IAccessible.accSelect(Int32, Object)

修改選取範圍或移動可存取物件的鍵盤焦點。 關於此成員的描述,請參見 accSelect(Int32, Object)

(繼承來源 AccessibleObject)
IAccessible.accSelection

取得可存取物件所選的子物件。 關於此成員的描述,請參見 accSelection

(繼承來源 AccessibleObject)
IReflect.GetField(String, BindingFlags)

取得 FieldInfo 對應指定欄位與綁定標誌的物件。 關於此成員的描述,請參見 GetField(String, BindingFlags)

(繼承來源 AccessibleObject)
IReflect.GetFields(BindingFlags)

取得一個對應當前類別所有欄位的物件陣列 FieldInfo 。 關於此成員的描述,請參見 GetFields(BindingFlags)

(繼承來源 AccessibleObject)
IReflect.GetMember(String, BindingFlags)

取得一個對應所有公開成員或所有符合指定名稱成員的物件陣列 MemberInfo 。 關於此成員的描述,請參見 GetMember(String, BindingFlags)

(繼承來源 AccessibleObject)
IReflect.GetMembers(BindingFlags)

會取得一個物件陣列 MemberInfo ,這些物件對應於所有公開成員或目前類別的所有成員。 關於此成員的描述,請參見 GetMembers(BindingFlags)

(繼承來源 AccessibleObject)
IReflect.GetMethod(String, BindingFlags, Binder, Type[], ParameterModifier[])

取得 MethodInfo 對應特定方法的物件,並使用型態陣列從過載方法中選擇。 關於此成員的描述,請參見 GetMethod(String, BindingFlags, Binder, Type[], ParameterModifier[])

(繼承來源 AccessibleObject)
IReflect.GetMethod(String, BindingFlags)

在指定的搜尋限制下,取得 MethodInfo 對應特定方法的物件。 關於此成員的描述,請參見 GetMethod(String, BindingFlags)

(繼承來源 AccessibleObject)
IReflect.GetMethods(BindingFlags)

會得到一個包含所有公開方法或當前類別所有方法的物件陣列 MethodInfo 。 關於此成員的描述,請參見 GetMethods(BindingFlags)

(繼承來源 AccessibleObject)
IReflect.GetProperties(BindingFlags)

會獲得一個對應所有公開屬性或當前類別所有屬性的物件陣列 PropertyInfo 。 關於此成員的描述,請參見 GetProperties(BindingFlags)

(繼承來源 AccessibleObject)
IReflect.GetProperty(String, BindingFlags, Binder, Type, Type[], ParameterModifier[])

取得 PropertyInfo 一個對應特定屬性且具特定搜尋約束的物件。 關於此成員的描述,請參見 GetProperty(String, BindingFlags, Binder, Type, Type[], ParameterModifier[])

(繼承來源 AccessibleObject)
IReflect.GetProperty(String, BindingFlags)

在指定的搜尋限制下,取得 PropertyInfo 對應特定屬性的物件。 關於此成員的描述,請參見 GetProperty(String, BindingFlags)

(繼承來源 AccessibleObject)
IReflect.InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[])

呼叫指定的成員。 關於此成員的描述,請參見 InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[])

(繼承來源 AccessibleObject)
IReflect.UnderlyingSystemType

取得代表該 IReflect 物件的底層型別。 關於此成員的描述,請參見 UnderlyingSystemType

(繼承來源 AccessibleObject)

適用於

另請參閱