次の方法で共有


AccessibleObject.GetChildCount メソッド

ユーザー補助オブジェトに属する子の数を取得します。

Public Overridable Function GetChildCount() As Integer
[C#]
public virtual int GetChildCount();
[C++]
public: virtual int GetChildCount();
[JScript]
public function GetChildCount() : int;

戻り値

ユーザー補助オブジェトに属する子の数。

解説

継承時の注意: すべてのオブジェクトがこのプロパティをサポートする必要があります。既定の実装は、-1 を返します。ユーザー補助オブジェクトで独自の子ユーザー補助オブジェクトを提供する必要がある場合は、このメソッドをオーバーライドします。このメソッドをオーバーライドする場合は、 GetChild もオーバーライドする必要があります。

使用例

[Visual Basic, C#, C++] ユーザー補助情報を公開する AccessibleObject クラスおよび Control.ControlAccessibleObject クラスを使用して、ユーザー補助対応のチャート コントロールを作成する方法の例を次に示します。コントロールは、凡例に沿って 2 つの曲線をプロットします。 ControlAccessibleObject から派生された ChartControlAccessibleObject クラスは、チャート コントロールの独自のユーザー補助情報を提供することを目的として、 CreateAccessibilityInstance メソッドで使用します。チャートの凡例は実際の Control ベースのコントロールではなく、チャート コントロールによって描画されるため、組み込みのユーザー補助情報は含まれていません。このため、 ChartControlAccessibleObject クラスは、 GetChild メソッドをオーバーライドして、凡例の各部分のユーザー補助情報を表す CurveLegendAccessibleObject を返します。ユーザー補助対応のアプリケーションでこのコントロールが使用された場合、このコントロールは必要なユーザー補助情報を提供できます。

[Visual Basic, C#, C++] GetChildCount メソッドをオーバーライドする例を次に示します。コード例全体については、 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

[C#] 
// 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;                        
            }
        }            
    }
}

[C++] 
// Inner class ChartControlAccessibleObject represents accessible information associated with the ChartControl.
// The ChartControlAccessibleObject is returned in the ChartControl::CreateAccessibilityInstance .
__gc class ChartControlAccessibleObject : public ControlAccessibleObject {
   ChartControl* chartControl;

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

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

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

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

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

   // 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.
public private:
   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 0;
      }

      // 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) != 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;
            }
         }
      }
}; // class ChartControlAccessibleObject

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

AccessibleObject クラス | AccessibleObject メンバ | System.Windows.Forms 名前空間