다음을 통해 공유


AccessibleObject.GetChild 메서드

지정한 인덱스에 해당하는 액세스 가능 자식을 검색합니다.

네임스페이스: System.Windows.Forms
어셈블리: System.Windows.Forms(system.windows.forms.dll)

구문

‘선언
Public Overridable Function GetChild ( _
    index As Integer _
) As AccessibleObject
‘사용 방법
Dim instance As AccessibleObject
Dim index As Integer
Dim returnValue As AccessibleObject

returnValue = instance.GetChild(index)
public virtual AccessibleObject GetChild (
    int index
)
public:
virtual AccessibleObject^ GetChild (
    int index
)
public AccessibleObject GetChild (
    int index
)
public function GetChild (
    index : int
) : AccessibleObject

매개 변수

  • index
    액세스 가능 자식의 인덱스(0부터 시작)입니다.

반환 값

지정한 인덱스에 해당하는 액세스 가능 자식을 나타내는 AccessibleObject입니다.

설명

상속자 참고 사항 모든 액세스 가능 개체는 이 속성을 지원해야 합니다. 해당 메서드가 재정의되지 않으면 Null 참조(Visual Basic의 경우 Nothing)을 반환합니다. 액세스 가능 개체에서 사용자 지정 액세스 가능 자식을 제공할 필요가 있는 경우 이 메서드를 재정의합니다. 인덱스가 잘못되어 있으면 이 메서드는 Null 참조(Visual Basic의 경우 Nothing)을 반환합니다. 이 메서드를 재정의하려면 GetChildCount도 재정의해야 합니다.

예제

다음 예제에서는 액세스할 수 있는 정보를 노출하는 AccessibleObjectControl.ControlAccessibleObject 클래스를 사용하여 액세스 가능성 구분 차트 컨트롤을 작성하는 방법을 보여 줍니다. 이 컨트롤은 범례를 따라 두 곡선을 그립니다. ControlAccessibleObject에서 파생되는 ChartControlAccessibleObject 클래스는 CreateAccessibilityInstance 메서드에서 차트 컨트롤에 대한 사용자 지정 액세스 가능 정보를 제공하는 데 사용됩니다. 차트 범례는 실제 Control 기반 컨트롤은 아니지만 차트 컨트롤에 의해 그려지며 액세스할 수 있는 내장 정보를 포함하고 있지 않습니다. 이로 인해 ChartControlAccessibleObject 클래스가 GetChild 메서드를 재정의하여 각 범례 부분에 대한 액세스 가능 정보를 나타내는 CurveLegendAccessibleObject를 반환합니다. 액세스할 수 있는 응용 프로그램에서 이 컨트롤을 사용할 때 이 컨트롤은 필요한 액세스 가능 정보를 제공할 수 있습니다.

인용된 이 코드에서는 GetChild 메서드를 재정의하는 방법을 보여 줍니다. 전체 코드 예제를 보려면 AccessibleObject 클래스 개요를 참조하십시오.

' Inner Class ChartControlAccessibleObject represents accessible information 
' associated with the ChartControl.
' The ChartControlAccessibleObject is returned in the         ' ChartControl.CreateAccessibilityInstance override.
Public Class ChartControlAccessibleObject
    Inherits Control.ControlAccessibleObject

    Private chartControl As ChartControl
    
    Public Sub New(ctrl As ChartControl)
        MyBase.New(ctrl)
        chartControl = ctrl
    End Sub 'New
    
    ' Get the role for the Chart. This is used by accessibility programs.            
    Public Overrides ReadOnly Property Role() As AccessibleRole
        Get
            Return System.Windows.Forms.AccessibleRole.Chart
        End Get
    End Property
    
    ' Get the state for the Chart. This is used by accessibility programs.            
    Public Overrides ReadOnly Property State() As AccessibleStates
        Get
            Return AccessibleStates.ReadOnly
        End Get
    End Property                        
    
    ' The CurveLegend objects are "child" controls in terms of accessibility so 
    ' return the number of ChartLengend objects.            
    Public Overrides Function GetChildCount() As Integer
        Return chartControl.Legends.Length
    End Function 
    
    ' Get the Accessibility object of the child CurveLegend idetified by index.
    Public Overrides Function GetChild(index As Integer) As AccessibleObject
        If index >= 0 And index < chartControl.Legends.Length Then
            Return chartControl.Legends(index).AccessibilityObject
        End If
        Return Nothing
    End Function 
    
    ' Helper function that is used by the CurveLegend's accessibility object
    ' to navigate between sibiling controls. Specifically, this function is used in
    ' the CurveLegend.CurveLegendAccessibleObject.Navigate function.
    Friend Function NavigateFromChild(child As CurveLegend.CurveLegendAccessibleObject, _
                                    navdir As AccessibleNavigation) As AccessibleObject
        Select Case navdir
            Case AccessibleNavigation.Down, AccessibleNavigation.Next
                    Return GetChild(child.ID + 1)
            
            Case AccessibleNavigation.Up, AccessibleNavigation.Previous
                    Return GetChild(child.ID - 1)
        End Select
        Return Nothing
    End Function            

    ' Helper function that is used by the CurveLegend's accessibility object
    ' to select a specific CurveLegend control. Specifically, this function is used 
    ' in the CurveLegend.CurveLegendAccessibleObject.Select function.            
    Friend Sub SelectChild(child As CurveLegend.CurveLegendAccessibleObject, selection As AccessibleSelection)
        Dim childID As Integer = child.ID
        
        ' Determine which selection action should occur, based on the
        ' AccessibleSelection value.
        If (selection And AccessibleSelection.TakeSelection) <> 0 Then
            Dim i As Integer
            For i = 0 To chartControl.Legends.Length - 1
                If i = childID Then
                    chartControl.Legends(i).Selected = True
                Else
                    chartControl.Legends(i).Selected = False
                End If
            Next i
            
            ' AccessibleSelection.AddSelection means that the CurveLegend will be selected.
            If (selection And AccessibleSelection.AddSelection) <> 0 Then
                chartControl.Legends(childID).Selected = True
            End If

            ' AccessibleSelection.AddSelection means that the CurveLegend will be unselected.                    
            If (selection And AccessibleSelection.RemoveSelection) <> 0 Then
                chartControl.Legends(childID).Selected = False
            End If
        End If
    End Sub 'SelectChild
End Class 'ChartControlAccessibleObject
// Inner class ChartControlAccessibleObject represents accessible information associated with the ChartControl.
// The ChartControlAccessibleObject is returned in the ChartControl.CreateAccessibilityInstance override.
public class ChartControlAccessibleObject : ControlAccessibleObject
{
    ChartControl chartControl;

    public ChartControlAccessibleObject(ChartControl ctrl) : base(ctrl) 
    {
        chartControl = ctrl;
    }

    // Gets the role for the Chart. This is used by accessibility programs.
    public override AccessibleRole Role
    {  
        get {
            return AccessibleRole.Chart;
        }
    }

    // Gets the state for the Chart. This is used by accessibility programs.
    public override AccessibleStates State
    {  
        get {                    
            return AccessibleStates.ReadOnly;
        }
    }

    // The CurveLegend objects are "child" controls in terms of accessibility so 
    // return the number of ChartLengend objects.
    public override int GetChildCount()
    {  
        return chartControl.Legends.Length;
    }

    // Gets the Accessibility object of the child CurveLegend idetified by index.
    public override AccessibleObject GetChild(int index)
    {  
        if (index >= 0 && index < chartControl.Legends.Length) {
            return chartControl.Legends[index].AccessibilityObject;
        }                
        return null;
    }

    // Helper function that is used by the CurveLegend's accessibility object
    // to navigate between sibiling controls. Specifically, this function is used in
    // the CurveLegend.CurveLegendAccessibleObject.Navigate function.
    internal AccessibleObject NavigateFromChild(CurveLegend.CurveLegendAccessibleObject child, 
                                                AccessibleNavigation navdir) 
    {  
        switch(navdir) {
            case AccessibleNavigation.Down:
            case AccessibleNavigation.Next:
                return GetChild(child.ID + 1);
                
            case AccessibleNavigation.Up:
            case AccessibleNavigation.Previous:
                return GetChild(child.ID - 1);                        
        }
        return null;
    }

    // Helper function that is used by the CurveLegend's accessibility object
    // to select a specific CurveLegend control. Specifically, this function is used
    // in the CurveLegend.CurveLegendAccessibleObject.Select function.
    internal void SelectChild(CurveLegend.CurveLegendAccessibleObject child, AccessibleSelection selection) 
    {   
        int childID = child.ID;

        // Determine which selection action should occur, based on the
        // AccessibleSelection value.
        if ((selection & AccessibleSelection.TakeSelection) != 0) {
            for(int i = 0; i < chartControl.Legends.Length; i++) {
                if (i == childID) {
                    chartControl.Legends[i].Selected = true;                        
                } else {
                    chartControl.Legends[i].Selected = false;
                }
            }

            // AccessibleSelection.AddSelection means that the CurveLegend will be selected.
            if ((selection & AccessibleSelection.AddSelection) != 0) {
                chartControl.Legends[childID].Selected = true;                        
            }

            // AccessibleSelection.AddSelection means that the CurveLegend will be unselected.
            if ((selection & AccessibleSelection.RemoveSelection) != 0) {
                chartControl.Legends[childID].Selected = false;                        
            }
        }            
    }
}
// Inner class ChartControlAccessibleObject represents accessible information associated with the ChartControl.
// The ChartControlAccessibleObject is returned in the ChartControl::CreateAccessibilityInstance .
ref class ChartControlAccessibleObject: public ControlAccessibleObject
{
private:
   ChartControl^ chartControl;

public:
   ChartControlAccessibleObject( ChartControl^ ctrl )
      : ControlAccessibleObject( ctrl )
   {
      chartControl = ctrl;
   }


   property System::Windows::Forms::AccessibleRole Role 
   {

      // Gets the role for the Chart. This is used by accessibility programs.
      virtual System::Windows::Forms::AccessibleRole get() override
      {
         return ::AccessibleRole::Chart;
      }

   }

   property AccessibleStates State 
   {

      // Gets the state for the Chart. This is used by accessibility programs.
      virtual AccessibleStates get() override
      {
         return AccessibleStates::ReadOnly;
      }

   }

   // The CurveLegend objects are "child" controls in terms of accessibility so
   // return the number of ChartLengend objects.
   virtual int GetChildCount() override
   {
      return chartControl->Legends->Length;
   }


   // Gets the Accessibility object of the child CurveLegend idetified by index.
   virtual AccessibleObject^ GetChild( int index ) override
   {
      if ( index >= 0 && index < chartControl->Legends->Length )
      {
         return chartControl->Legends[ index ]->AccessibilityObject;
      }

      return nullptr;
   }


internal:

   // Helper function that is used by the CurveLegend's accessibility object
   // to navigate between sibiling controls. Specifically, this function is used in
   // the CurveLegend::CurveLegendAccessibleObject.Navigate function.
   AccessibleObject^ NavigateFromChild( CurveLegend::CurveLegendAccessibleObject^ child, AccessibleNavigation navdir )
   {
      switch ( navdir )
      {
         case AccessibleNavigation::Down:
         case AccessibleNavigation::Next:
            return GetChild( child->ID + 1 );

         case AccessibleNavigation::Up:
         case AccessibleNavigation::Previous:
            return GetChild( child->ID - 1 );
      }
      return nullptr;
   }


   // Helper function that is used by the CurveLegend's accessibility object
   // to select a specific CurveLegend control. Specifically, this function is used
   // in the CurveLegend::CurveLegendAccessibleObject.Select function.
   void SelectChild( CurveLegend::CurveLegendAccessibleObject^ child, AccessibleSelection selection )
   {
      int childID = child->ID;
      
      // Determine which selection action should occur, based on the
      // AccessibleSelection value.
      if ( (selection & AccessibleSelection::TakeSelection) != (AccessibleSelection)0 )
      {
         for ( int i = 0; i < chartControl->Legends->Length; i++ )
         {
            if ( i == childID )
            {
               chartControl->Legends[ i ]->Selected = true;
            }
            else
            {
               chartControl->Legends[ i ]->Selected = false;
            }

         }
         
         // AccessibleSelection->AddSelection means that the CurveLegend will be selected.
         if ( (selection & AccessibleSelection::AddSelection) != (AccessibleSelection)0 )
         {
            chartControl->Legends[ childID ]->Selected = true;
         }
         
         // AccessibleSelection->AddSelection means that the CurveLegend will be unselected.
         if ( (selection & AccessibleSelection::RemoveSelection) != (AccessibleSelection)0 )
         {
            chartControl->Legends[ childID ]->Selected = false;
         }
      }
   }

};

// class ChartControlAccessibleObject
// Inner class ChartControlAccessibleObject represents accessible 
// information associated with the ChartControl.
// The ChartControlAccessibleObject is returned in the 
// ChartControl.CreateAccessibilityInstance override.
public static class ChartControlAccessibleObject 
    extends ControlAccessibleObject
{
    private ChartControl chartControl;

    public ChartControlAccessibleObject(ChartControl ctrl)
    {
        super(ctrl);
        chartControl = ctrl;
    } //ChartControlAccessibleObject

    // Gets the role for the Chart. This is used by accessibility programs.
    /** @property 
     */
    public AccessibleRole get_Role()
    {
        return AccessibleRole.Chart;
    } //get_Role

    // Gets the state for the Chart. This is used by accessibility programs.
    /** @property 
     */
    public AccessibleStates get_State()
    {
        return AccessibleStates.ReadOnly;
    } //get_State

    // The CurveLegend objects are "child" controls in terms of  
    // accessibility so return the number of ChartLengend objects.
    public int GetChildCount()
    {
        return chartControl.get_Legends().get_Length();
    } //GetChildCount

    // Gets the Accessibility object of the child CurveLegend 
    // idetified by index.
    public AccessibleObject GetChild(int index)
    {
        if (index >= 0 && index < chartControl.get_Legends().get_Length()) {
            return chartControl.get_Legends()[index].
                get_AccessibilityObject();
        }
        return null;
    } //GetChild

    // Helper function that is used by the CurveLegend's accessibility 
    // object to navigate between sibiling controls.  
    // Specifically, this function is used in
    // the CurveLegend.CurveLegendAccessibleObject.Navigate function.
    AccessibleObject NavigateFromChild(
        CurveLegend.CurveLegendAccessibleObject child, 
        AccessibleNavigation navDir)
    {
        if (navDir.Equals(AccessibleNavigation.Down) 
            || navDir.Equals(AccessibleNavigation.Next)) {
            return GetChild(child.get_ID() + 1);
        }
        else {
            if (navDir.Equals(AccessibleNavigation.Up) 
                || navDir.Equals(AccessibleNavigation.Previous)) {
                return GetChild(child.get_ID() - 1);
            }
        }
        return null;
    } //NavigateFromChild

    // Helper function that is used by the CurveLegend's accessibility
    // object to select a specific CurveLegend control. 
    // Specifically, this function is used
    // in the CurveLegend.CurveLegendAccessibleObject.Select function.
    public void SelectChild(CurveLegend.CurveLegendAccessibleObject child, 
        AccessibleSelection selection)
    {
        int childID = child.get_ID();

        // Determine which selection action should occur, based on the
        // AccessibleSelection value.
        if (Convert.ToInt32(selection & AccessibleSelection.TakeSelection)
            != 0) {
            for (int i = 0; i < chartControl.get_Legends().get_Length(); 
                i++) {
                if (i == childID) {
                    ((CurveLegend)chartControl.get_Legends().get_Item(i)).
                        set_Selected(true);
                }
                else {
                    ((CurveLegend)chartControl.get_Legends().get_Item(i)).
                        set_Selected(false);
                }
            }

            // AccessibleSelection.AddSelection means that the CurveLegend 
            // will be selected.
            if (Convert.ToInt32(selection & AccessibleSelection.AddSelection)
                != 0) {
                ((CurveLegend)chartControl.get_Legends().get_Item(childID)).
                    set_Selected(true);
            }

            // AccessibleSelection.AddSelection means that the CurveLegend 
            // will be unselected.
            if (Convert.ToInt32(selection & 
                AccessibleSelection.RemoveSelection) != 0) {
                ((CurveLegend)chartControl.get_Legends().get_Item(childID)).
                    set_Selected(false);
            }
        }
    } //SelectChild
} //ChartControlAccessibleObject

플랫폼

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

2.0, 1.1, 1.0에서 지원

참고 항목

참조

AccessibleObject 클래스
AccessibleObject 멤버
System.Windows.Forms 네임스페이스