AccessibleObjectとは?

AccessibleObject クラス

障害を持つユーザー合わせてアプリケーションユーザー インターフェイス (UI) を調整するために、ユーザー補助アプリケーション使用する情報を提供します。

名前空間: System.Windows.Forms
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)
構文構文

解説解説

ユーザー補助アプリケーションでは、アプリケーション機能調整することによって、障害を持つユーザー利便高めることができます

視覚障害のあるユーザーに対しては、ソフトウェアおよびオペレーティング システム機能を必要に合わせて調整できます。たとえば、テキストイメージ拡大したり、コントラスト強調して表示したりできますまた、色盲ユーザーには、適切な配色使用できます重度視覚障害があるユーザーに対しては、コンピュータから、画面表示支援する装置アクセスできる機能を提供します。これによって、画面上のテキストを、音声または動的表示変更する点字ディスプレイ変換できます

聴覚障害のあるユーザーに対しては、点滅ツール バーなど、視覚効果のある UIプログラム取り入れたり音声メッセージテキストとして表示したりできます。たとえば、コントロール パネルユーザー補助オプションである SoundSentry 機能を有効にすると、警告音画面表示反映できます

身体的障害のあるユーザーに対しては、キーボードおよびマウス操作を簡単にしたり不要にしたりするようにコントロール設計することによって、コンピュータ使いやすくすることができますコントロール パネルには支援機能用意されています。たとえば、マウス ポインタ操作に、マウス代わりにテンキー使用できますCtrl キー押しながら P キーを押すなど、2 つ以上のキー同時に押すことができない場合は、StickyKeys オプション使用すると、キー1 つずつ押すことによって同じ操作ができるようになります

知覚障害言語障害のあるユーザーに対しては、ソフトウェア プログラム設計によって利便性を向上できます。たとえば、常に次の操作がわかるように工夫する、表示簡略化する、文章少なくする、小学生でも理解できる文章にするなどの対応が有効です。

発作性の障害のあるユーザーに対しては、発作原因となるようなパターン削除したソフトウェア プログラム設計できます

ユーザー補助アプリケーションに関する情報など、ユーザー補助詳細については、MSDN ライブラリまたは MicrosoftWeb サイトMicrosoft Accessibility に関するドキュメント参照してください

メモメモ

AccessibleObject使用するには、.NET Framework一緒にインストールされる Accessibility アセンブリへの参照追加する必要があります

継承時の注意 このクラスから継承する場合は、すべてのメンバオーバーライドできます

使用例使用

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

Option Explicit

Imports System
Imports System.Drawing
Imports System.Windows.Forms

Namespace ChartControlNameSpace
    
    Public Class Form1 
        Inherits System.Windows.Forms.Form

        ' Test out the Chart Control.
        Private chart1 As ChartControl

        <System.STAThread()> _
        Public Shared Sub
 Main()
            System.Windows.Forms.Application.Run(New Form1())
        End Sub 'Main

        Public Sub New()
 
            ' Create a chart control and add it to the form.
            Me.chart1 = New ChartControl()
            Me.ClientSize = New System.Drawing.Size(920,
 566)

            Me.chart1.Location = New System.Drawing.Point(47,
 16)
            Me.chart1.Size = New System.Drawing.Size(600,
 400)

            Me.Controls.Add(Me.chart1)
        End Sub
    End Class

    ' Declares a chart control that demonstrates Accessibility in Windows
 Forms.
    Public Class ChartControl
        Inherits System.Windows.Forms.UserControl

        Private legend1 As CurveLegend
        Private legend2 As CurveLegend
        
        Public Sub New()
            ' The ChartControl draws the chart in the OnPaint override.
            SetStyle(ControlStyles.ResizeRedraw, True)
            SetStyle(ControlStyles.DoubleBuffer, True)
            SetStyle(ControlStyles.AllPaintingInWmPaint, True)
            
            Me.BackColor = System.Drawing.Color.White
            Me.Name = "ChartControl"

            ' The CurveLengend is not Control-based, it just
            ' represent the parts of the legend.
            legend1 = New CurveLegend(Me, "A")
            legend1.Location = New Point(20, 30)
            legend2 = New CurveLegend(Me, "B")
            legend2.Location = New Point(20, 50)
        End Sub 'New
              
        ' Overridden to return the custom AccessibleObject 
        ' for the entire chart.
        Protected Overrides Function
 CreateAccessibilityInstance() As AccessibleObject
            Return New ChartControlAccessibleObject(Me)
        End Function 

        Protected Overrides Sub
 OnPaint(e As PaintEventArgs)
            ' The ChartControl draws the chart in the OnPaint override.
            MyBase.OnPaint(e)
            
            Dim bounds As Rectangle = Me.ClientRectangle
            Dim border As Integer
 = 5
            
            ' Draw the legends first.
            Dim format As New
 StringFormat()
            format.Alignment = StringAlignment.Center
            format.LineAlignment = StringAlignment.Center
            
            If Not (legend1 Is
 Nothing) Then
                If legend1.Selected Then
                    e.Graphics.FillRectangle(New SolidBrush(Color.Blue),
 legend1.Bounds)
                Else
                    e.Graphics.DrawRectangle(Pens.Blue, legend1.Bounds)
                End If
                e.Graphics.DrawString(legend1.Name, Me.Font, Brushes.Black,
 RectangleF.op_Implicit(legend1.Bounds), format)
            End If
            If Not (legend2 Is
 Nothing) Then
                If legend2.Selected Then
                    e.Graphics.FillRectangle(New SolidBrush(Color.Red),
 legend2.Bounds)
                Else
                    e.Graphics.DrawRectangle(Pens.Red, legend2.Bounds)
                End If
                e.Graphics.DrawString(legend2.Name, Me.Font, Brushes.Black,
 RectangleF.op_Implicit(legend2.Bounds), format)
            End If
            
            ' Chart out the actual curves that represent data in the
 Chart.
            bounds.Inflate(-border, -border)
            Dim curve1() As Point = {New Point(bounds.Left,
 bounds.Bottom), _
                                     New Point(bounds.Left + bounds.Width
 / 3, bounds.Top + bounds.Height / 5), _
                                     New Point(bounds.Right -
 bounds.Width / 3,(bounds.Top + bounds.Bottom) / 2), _
                                     New Point(bounds.Right, bounds.Top)}

            Dim curve2() As Point = {New Point(bounds.Left,
 bounds.Bottom - bounds.Height / 3), _
                                     New Point(bounds.Left + bounds.Width
 / 3, bounds.Top + bounds.Height / 5), _
                                     New Point(bounds.Right -
 bounds.Width / 3,(bounds.Top + bounds.Bottom) / 2), _
                                     New Point(bounds.Right, bounds.Top
 + bounds.Height / 2)}
            
            ' Draw the actual curve only if it is selected.
            If legend1.Selected Then
                e.Graphics.DrawCurve(Pens.Blue, curve1)
            End If
            If legend2.Selected Then
                e.Graphics.DrawCurve(Pens.Red, curve2)
            End If 
            e.Graphics.DrawRectangle(Pens.Blue, bounds)
        End Sub 'OnPaint
        
        ' Handle the QueryAccessibilityHelp event.
        Private Sub ChartControl_QueryAccessibilityHelp(sender
 As Object, _
                           e As System.Windows.Forms.QueryAccessibilityHelpEventArgs)
 Handles MyBase.QueryAccessibilityHelp
            e.HelpString = "Displays chart data"
        End Sub 

        ' Handle the Click event for the chart. 
        ' Toggle the selection of whatever legend was clicked.     
        Private Sub ChartControl_Click(sender
 As Object, e As System.EventArgs)
 Handles MyBase.Click

            Dim pt As Point = Me.PointToClient(Control.MousePosition)
            If legend1.Bounds.Contains(pt) Then
                legend1.Selected = Not legend1.Selected
            Else
                If legend2.Bounds.Contains(pt) Then
                    legend2.Selected = Not legend2.Selected
                End If
            End If
        End Sub 'ChartControl_Click

        ' Get an array of the CurveLengends used in the Chart.
        Public ReadOnly Property
 Legends() As CurveLegend()
            Get
                Return New CurveLegend() {legend1,
 legend2}
            End Get
        End Property
        
        Protected Sub ExposeAccessibilityNotifyClients(ByVal
 accEvent As AccessibleEvents, ByVal childID
 As Integer)
            AccessibilityNotifyClients(accEvent, childID) 
        End Sub

        ' 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 that represents a legend for a curve in the chart.
        Public Class CurveLegend
            Private m_name As String
            Private chart As ChartControl
            Private accObj As CurveLegendAccessibleObject
            Private m_selected As Boolean
 = True
            Private m_location As Point
            
            Public Sub New(chart
 As ChartControl, name As String)
                Me.chart = chart
                Me.m_name = name
            End Sub 'New

            ' Gets the accessibility object for the curve legend.  
          
            Public ReadOnly Property
 AccessibilityObject() As AccessibleObject
                Get
                    If accObj Is Nothing
 Then
                        accObj = New CurveLegendAccessibleObject(Me)
                    End If
                    Return accObj
                End Get
            End Property
            
            ' Gets the bounds for the curve legend.            
            Public ReadOnly Property
 Bounds() As Rectangle
                Get
                    Return New Rectangle(Location,
 Size)
                End Get
            End Property

            ' Gets or sets the location for the curve legend.      
      
            Public Property Location() As
 Point
                Get
                    Return m_location
                End Get
                Set
                    m_location = value
                    chart.Invalidate()

                    ' Notifies the chart of the location change. This
 is used for
                    ' the accessibility information. AccessibleEvents.LocationChange
                    ' tells the chart the reason for the notification.
                    chart.ExposeAccessibilityNotifyClients(AccessibleEvents.LocationChange,
 _
                            CType(AccessibilityObject, CurveLegendAccessibleObject).ID)
                End Set
            End Property
            
            ' Gets or sets the Name for the curve legend.          
  
            Public Property Name() As
 String
                Get
                    Return m_name
                End Get
                Set
                    If m_name <> value Then
                        m_name = value
                        chart.Invalidate()

                        ' Notifies the chart of the name change. This
 is used for
                        ' the accessibility information. AccessibleEvents.NameChange
                        ' tells the chart the reason for the notification.
 
                        chart.ExposeAccessibilityNotifyClients(AccessibleEvents.NameChange,
 _
                                CType(AccessibilityObject, CurveLegendAccessibleObject).ID)
                    End If
                End Set
            End Property
            
            ' Gets or sets the Selected state for the curve legend.
            
            Public Property Selected() As
 Boolean
                Get
                    Return m_selected
                End Get
                Set
                    If m_selected <> value Then
                        m_selected = value
                        chart.Invalidate()

                        ' Notifies the chart of the selection value
 change. This is used for
                        ' the accessibility information. The AccessibleEvents
 value varies
                        ' on whether the selection is true (AccessibleEvents.SelectionAdd)
 or 
                        ' false (AccessibleEvents.SelectionRemove).
 
                        If m_selected Then
                            chart.ExposeAccessibilityNotifyClients(AccessibleEvents.SelectionAdd,
 _
                                    CType(AccessibilityObject, CurveLegendAccessibleObject).ID)
 
                        Else
                            chart.ExposeAccessibilityNotifyClients(AccessibleEvents.SelectionRemove,
 _
                                    CType(AccessibilityObject, CurveLegendAccessibleObject).ID)
 
                        End If
                    End If
                End Set
            End Property
            
            ' Gets the Size for the curve legend.            
            Public ReadOnly Property
 Size() As Size
                Get
                    Dim legendHeight As Integer
 = chart.Font.Height + 4
                    Dim g As Graphics = chart.CreateGraphics()
                    Dim legendWidth As Integer
 = CInt(g.MeasureString(Name, chart.Font).Width) + 4
                    
                    Return New Size(legendWidth,
 legendHeight)
                End Get
            End Property
            
            
            ' Inner class CurveLegendAccessibleObject represents accessible
 information 
            ' associated with the CurveLegend object.
            Public Class CurveLegendAccessibleObject
                Inherits AccessibleObject

                Private curveLegend As CurveLegend
                
                Public Sub New(curveLegend
 As CurveLegend)
                    Me.curveLegend = curveLegend
                End Sub 'New
                
                ' Private property that helps get the reference to the
 parent ChartControl.                
                Private ReadOnly Property
 ChartControl() As ChartControlAccessibleObject
                    Get
                        Return CType(Parent, ChartControlAccessibleObject)
                    End Get
                End Property

                ' Friend helper function that returns the ID for this
 CurveLegend.                
                Friend ReadOnly Property
 ID() As Integer
                    Get
                        Dim i As Integer
                        For i = 0 To (ChartControl.GetChildCount())
 - 1
                            If ChartControl.GetChild(i) Is
 Me Then
                                Return i
                            End If
                        Next i
                        Return - 1
                    End Get
                End Property
                
                ' Gets the Bounds for the CurveLegend. This is used
 by accessibility programs.
                Public Overrides ReadOnly
 Property Bounds() As Rectangle
                    Get
                        ' The bounds is in screen coordinates.
                        Dim loc As Point =
 curveLegend.Location
                        Return New Rectangle(curveLegend.chart.PointToScreen(loc),
 curveLegend.Size)
                    End Get
                End Property

                ' Gets or sets the Name for the CurveLegend. This is
 used by accessibility programs.                
                Public Overrides Property
 Name() As String
                    Get
                        Return curveLegend.Name
                    End Get
                    Set
                        curveLegend.Name = value
                    End Set
                End Property
                
                ' Gets the Curve Legend Parent's Accessible object.
                ' This is used by accessibility programs.          
      
                Public Overrides ReadOnly
 Property Parent() As AccessibleObject
                    Get
                        Return curveLegend.chart.AccessibilityObject
                    End Get
                End Property
                
                ' Gets the role for the CurveLegend. This is used by
 accessibility programs.                
                Public Overrides ReadOnly
 Property Role() As AccessibleRole
                    Get
                        Return System.Windows.Forms.AccessibleRole.StaticText
                    End Get
                End Property

                ' Gets the state based on the selection for the CurveLegend.
 
                ' This is used by accessibility programs.          
      
                Public Overrides ReadOnly
 Property State() As AccessibleStates
                    Get
                        Dim stateTemp As AccessibleStates
 = AccessibleStates.Selectable
                        If curveLegend.Selected Then
                            stateTemp = stateTemp Or AccessibleStates.Selected
                        End If
                        Return stateTemp
                    End Get
                End Property
                
                ' Navigates through siblings of this CurveLegend. This
 is used by accessibility programs.                
                Public Overrides Function
 Navigate(navdir As AccessibleNavigation) As
 AccessibleObject
                    ' Use the Friend NavigateFromChild helper function
 that exists
                    ' on ChartControlAccessibleObject.
                    Return ChartControl.NavigateFromChild(Me,
 navdir)
                End Function
                
                ' Selects or unselects this CurveLegend. This is used
 by accessibility programs.
                Public Overrides Sub
 [Select](selection As AccessibleSelection)

                    ' Use the internal SelectChild helper function that
 exists
                    ' on ChartControlAccessibleObject.
                    ChartControl.SelectChild(Me, selection)
                End Sub

            End Class 'CurveLegendAccessibleObject

        End Class 'CurveLegend

    End Class 'ChartControl

End Namespace 'ChartControlNameSpace
using System;
using System.Drawing;
using System.Windows.Forms;

namespace ChartControl
{
    public class Form1 : System.Windows.Forms.Form
    {
        // Test out the Chart Control.
        private ChartControl chart1;

        [STAThread]
        static void Main() 
        {
            Application.Run(new Form1());
        }

        public Form1() {
            // Create a chart control and add it to the form.
            this.chart1 = new ChartControl();
            this.ClientSize = new System.Drawing.Size(920,
 566);

            this.chart1.Location = new System.Drawing.Point(47,
 16);
            this.chart1.Size = new System.Drawing.Size(600,
 400);

            this.Controls.Add(this.chart1);
        }
    }

    // Declare a chart control that demonstrates accessibility in Windows
 Forms.
    public class ChartControl : System.Windows.Forms.UserControl
    {
        private CurveLegend legend1;
        private CurveLegend legend2; 

        public ChartControl()
        {
            // The ChartControl draws the chart in the OnPaint override.
            SetStyle(ControlStyles.ResizeRedraw, true);
            SetStyle(ControlStyles.DoubleBuffer, true);
            SetStyle(ControlStyles.AllPaintingInWmPaint, true);

            this.BackColor = System.Drawing.Color.White;
            this.Name = "ChartControl";

            this.Click += new System.EventHandler(this.ChartControl_Click);
            this.QueryAccessibilityHelp += 
                new System.Windows.Forms.QueryAccessibilityHelpEventHandler(
                                        this.ChartControl_QueryAccessibilityHelp);

            // The CurveLengend is not Control-based, it just
            // represents the parts of the legend.
            legend1 = new CurveLegend(this,
 "A");
            legend1.Location = new Point(20, 30);
            legend2 = new CurveLegend(this,
 "B");        
            legend2.Location = new Point(20, 50);
        }

        // Overridden to return the custom AccessibleObject 
        // for the entire chart.
        protected override AccessibleObject CreateAccessibilityInstance()
 
        {            
            return new ChartControlAccessibleObject(this);
        }

        protected override void OnPaint(PaintEventArgs
 e) 
        {
            // The ChartControl draws the chart in the OnPaint override.
            base.OnPaint(e);

            Rectangle bounds = this.ClientRectangle;
            int border = 5;

            // Draws the legends first.
            StringFormat format = new StringFormat();
            format.Alignment = StringAlignment.Center;
            format.LineAlignment = StringAlignment.Center;
            
            if (legend1 != null) {
                if (legend1.Selected) {
                    e.Graphics.FillRectangle(new SolidBrush(Color.Blue),
 legend1.Bounds);
                } else {
                    e.Graphics.DrawRectangle(Pens.Blue, legend1.Bounds);
                }

                e.Graphics.DrawString(legend1.Name, this.Font,
 Brushes.Black, legend1.Bounds, format);                
            }
            if (legend2 != null) {
                if (legend2.Selected) {
                    e.Graphics.FillRectangle(new SolidBrush(Color.Red),
 legend2.Bounds);
                } else {
                    e.Graphics.DrawRectangle(Pens.Red, legend2.Bounds);
                }
                e.Graphics.DrawString(legend2.Name, this.Font,
 Brushes.Black, legend2.Bounds, format);
            }            

            // Charts out the actual curves that represent data in the
 Chart.
            bounds.Inflate(-border, -border);
            Point[] curve1 = new Point[] {new
 Point(bounds.Left, bounds.Bottom),
                            new Point(bounds.Left + bounds.Width
 / 3, bounds.Top + bounds.Height / 5),
                            new Point(bounds.Right - bounds.Width
 / 3, (bounds.Top + bounds.Bottom) / 2),
                            new Point(bounds.Right, bounds.Top)};

            Point[] curve2 = new Point[] {new
 Point(bounds.Left, bounds.Bottom - bounds.Height / 3),
                            new Point(bounds.Left + bounds.Width
 / 3, bounds.Top + bounds.Height / 5),
                            new Point(bounds.Right - bounds.Width
 / 3, (bounds.Top + bounds.Bottom) / 2),
                            new Point(bounds.Right, bounds.Top
 + bounds.Height / 2)};

            // Draws the actual curve only if it is selected.
            if (legend1.Selected) e.Graphics.DrawCurve(Pens.Blue,
 curve1);
            if (legend2.Selected) e.Graphics.DrawCurve(Pens.Red,
 curve2);

            e.Graphics.DrawRectangle(Pens.Blue, bounds);            
        }

        // Handles the QueryAccessibilityHelp event.
        private void ChartControl_QueryAccessibilityHelp(object
 sender, 
                                    System.Windows.Forms.QueryAccessibilityHelpEventArgs
 e)
        {            
            e.HelpString = "Displays chart data";
        }          

        // Handles the Click event for the chart. 
        // Toggles the selection of whatever legend was clicked on
        private void ChartControl_Click(object
 sender, System.EventArgs e)
        {
            Point pt = this.PointToClient(Control.MousePosition);
            if (legend1.Bounds.Contains(pt)) {
                legend1.Selected = !legend1.Selected;

            } else if (legend2.Bounds.Contains(pt))
 {
                legend2.Selected = !legend2.Selected;
            }
        }

        // Gets an array of CurveLengends used in the Chart.
        public CurveLegend[] Legends
        {   
            get {                
                return new CurveLegend[] {
 legend1, legend2 };
            }            
        }                

        // 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 that represents a legend for a curve in the chart.
        public class CurveLegend 
        {
            private string name;
            private ChartControl chart;
            private CurveLegendAccessibleObject accObj;
            private bool selected = true;
            private Point location;

            public CurveLegend(ChartControl chart, string
 name) 
            {
                this.chart = chart;
                this.name = name;
            }

            // Gets the accessibility object for the curve legend.
            public AccessibleObject AccessibilityObject
            {
                get {
                    if (accObj == null) {
                        accObj = new CurveLegendAccessibleObject(this);
                    }
                    return accObj;
                }
            }
            
            // Gets the bounds for the curve legend.
            public Rectangle Bounds
            {   
                get {
                    return new Rectangle(Location,
 Size);
                }
            }

            // Gets or sets the location for the curve legend.
            public Point Location
            {   
                get {
                    return location;
                }
                set {
                    location = value;
                    chart.Invalidate();

                    // Notifies the chart of the location change. This
 is used for
                    // the accessibility information. AccessibleEvents.LocationChange
                    // tells the chart the reason for the notification.

                    chart.AccessibilityNotifyClients(AccessibleEvents.LocationChange,
 
                        ((CurveLegendAccessibleObject)AccessibilityObject).ID);
                }
            }            
        
            // Gets or sets the Name for the curve legend.
            public string Name
            {   
                get {
                    return name;
                }
                set {
                    if (name != value) 
                    {
                        name = value;
                        chart.Invalidate();

                        // Notifies the chart of the name change. This
 is used for
                        // the accessibility information. AccessibleEvents.NameChange
                        // tells the chart the reason for the notification.

                        chart.AccessibilityNotifyClients(AccessibleEvents.NameChange,
 
                            ((CurveLegendAccessibleObject)AccessibilityObject).ID);
                    }
                }
            }

            // Gets or sets the Selected state for the curve legend.
            public bool Selected
            {   
                get {
                    return selected;
                }
                set {
                    if (selected != value) 
                    {
                        selected = value;
                        chart.Invalidate();

                        // Notifies the chart of the selection value
 change. This is used for
                        // the accessibility information. The AccessibleEvents
 value depends upon
                        // if the selection is true (AccessibleEvents.SelectionAdd)
 or 
                        // false (AccessibleEvents.SelectionRemove).
                        chart.AccessibilityNotifyClients(
                            selected ? AccessibleEvents.SelectionAdd : AccessibleEvents.SelectionRemove,
 
                            ((CurveLegendAccessibleObject)AccessibilityObject).ID);
                    }
                }
            }

            // Gets the Size for the curve legend.
            public Size Size
            {   
                get {                    
                    int legendHeight = chart.Font.Height + 4;
                    Graphics g = chart.CreateGraphics();
                    int legendWidth = (int)g.MeasureString(Name,
 chart.Font).Width + 4;            

                    return new Size(legendWidth,
 legendHeight);
                }
            }
    
            // Inner class CurveLegendAccessibleObject represents accessible
 information 
            // associated with the CurveLegend object.
            public class CurveLegendAccessibleObject
 : AccessibleObject
            {
                private CurveLegend curveLegend;

                public CurveLegendAccessibleObject(CurveLegend
 curveLegend) : base() 
                {
                    this.curveLegend = curveLegend;          
          
                }                

                // Private property that helps get the reference to
 the parent ChartControl.
                private ChartControlAccessibleObject ChartControl
                {   
                    get {
                        return Parent as ChartControlAccessibleObject;
                    }
                }

                // Internal helper function that returns the ID for
 this CurveLegend.
                internal int ID
                {
                    get {
                        for(int i = 0; i <
 ChartControl.GetChildCount(); i++) {
                            if (ChartControl.GetChild(i) == this)
 {
                                return i;
                            }
                        }
                        return -1;
                    }
                }

                // Gets the Bounds for the CurveLegend. This is used
 by accessibility programs.
                public override Rectangle Bounds
                {
                    get {                        
                        // The bounds is in screen coordinates.
                        Point loc = curveLegend.Location;
                        return new Rectangle(curveLegend.chart.PointToScreen(loc)
,
 curveLegend.Size);
                    }
                }

                // Gets or sets the Name for the CurveLegend. This is
 used by accessibility programs.
                public override string Name
                {
                    get {
                        return curveLegend.Name;
                    }
                    set {
                        curveLegend.Name = value;                        
                    }
                }

                // Gets the Curve Legend Parent's Accessible object.
                // This is used by accessibility programs.
                public override AccessibleObject Parent
                {
                    get {
                        return curveLegend.chart.AccessibilityObject;
                    }
                }

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

                // Gets the state based on the selection for the CurveLegend.
 
                // This is used by accessibility programs.
                public override AccessibleStates State 
                {
                    get {
                        AccessibleStates state = AccessibleStates.Selectable;
                        if (curveLegend.Selected) 
                        {
                            state |= AccessibleStates.Selected;
                        }
                        return state;
                    }
                }

                // Navigates through siblings of this CurveLegend. This
 is used by accessibility programs.
                public override AccessibleObject Navigate(AccessibleNavigation
 navdir) 
                {
                    // Uses the internal NavigateFromChild helper function
 that exists
                    // on ChartControlAccessibleObject.
                    return ChartControl.NavigateFromChild(this,
 navdir);
                }

                // Selects or unselects this CurveLegend. This is used
 by accessibility programs.
                public override void Select(AccessibleSelection
 selection) 
                {
                    // Uses the internal SelectChild helper function
 that exists
                    // on ChartControlAccessibleObject.
                    ChartControl.SelectChild(this, selection);
                }
            }
        }
    }
}
#using <Accessibility.dll>
#using <System.dll>
#using <System.Windows.Forms.dll>
#using <System.Drawing.dll>

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

// Declare a chart control that demonstrates accessibility in Windows
 Forms.
public ref class ChartControl: public
 System::Windows::Forms::UserControl
{
public:
   ref class ChartControlAccessibleObject;

   // forward declaration
   // Inner Class that represents a legend for a curve in the chart.
   ref class CurveLegend
   {

      // Inner class CurveLegendAccessibleObject represents accessible
 information
      // associated with the CurveLegend object.
   public:
      ref class CurveLegendAccessibleObject: public
 AccessibleObject
      {
      private:
         CurveLegend^ curveLegend;

      public:
         CurveLegendAccessibleObject( CurveLegend^ curveLegend )
            : AccessibleObject()
         {
            this->curveLegend = curveLegend;
         }


      private:

         property ChartControlAccessibleObject^ ChartControl 
         {

            // Private property that helps get the reference to the
 parent ChartControl.
            ChartControlAccessibleObject^ get()
            {
               return dynamic_cast<ChartControlAccessibleObject^>(Parent);
            }

         }

      internal:

         property int ID 
         {

            // Internal helper function that returns the ID for this
 CurveLegend.
            int get()
            {
               for ( int i = 0; i < ChartControl->GetChildCount();
 i++ )
               {
                  if ( ChartControl->GetChild( i ) == this
 )
                  {
                     return i;
                  }

               }
               return  -1;
            }

         }

      public:

         property Rectangle Bounds 
         {

            // Gets the Bounds for the CurveLegend. This is used by
 accessibility programs.
            virtual Rectangle get() override
            {
               
               // The bounds is in screen coordinates.
               Point loc = curveLegend->Location;
               return Rectangle(curveLegend->chart->PointToScreen(
 loc ),curveLegend->Size);
            }

         }

         property String^ Name 
         {

            // Gets or sets the Name for the CurveLegend. This is used
 by accessibility programs.
            virtual String^ get() override
            {
               return curveLegend->Name;
            }

            virtual void set( String^ value
 ) override
            {
               curveLegend->Name = value;
            }

         }

         property AccessibleObject^ Parent 
         {

            // Gets the Curve Legend Parent's Accessible object.
            // This is used by accessibility programs.
            virtual AccessibleObject^ get() override
            {
               return curveLegend->chart->AccessibilityObject;
            }

         }

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

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

         }

         property AccessibleStates State 
         {

            // Gets the state based on the selection for the CurveLegend.
            // This is used by accessibility programs.
            virtual AccessibleStates get() override
            {
               AccessibleStates state = AccessibleStates::Selectable;
               if ( curveLegend->Selected )
               {
                  state = static_cast<AccessibleStates>(state | AccessibleStates::Selected);
               }

               return state;
            }

         }

         // Navigates through siblings of this CurveLegend. This is
 used by accessibility programs.
         virtual AccessibleObject^ Navigate( AccessibleNavigation navdir ) override
         {
            
            // Uses the internal NavigateFromChild helper function that
 exists
            // on ChartControlAccessibleObject.
            return ChartControl->NavigateFromChild( this,
 navdir );
         }


         // Selects or unselects this CurveLegend. This is used by accessibility
 programs.
         virtual void Select( AccessibleSelection selection )
 override
         {
            
            // Uses the internal SelectChild helper function that exists
            // on ChartControlAccessibleObject.
            ChartControl->SelectChild( this, selection );
         }

      };


   private:

      // class CurveLgendAccessibleObject
      String^ name;
      ChartControl^ chart;
      CurveLegendAccessibleObject^ accObj;
      bool selected;
      Point location;

   public:
      CurveLegend( ChartControl^ chart, String^ name )
      {
         this->chart = chart;
         this->name = name;
         selected = true;
      }


      property AccessibleObject^ AccessibilityObject 
      {

         // Gets the accessibility object for the curve legend.
         AccessibleObject^ get()
         {
            if ( accObj == nullptr )
            {
               accObj = gcnew CurveLegendAccessibleObject( this
 );
            }

            return accObj;
         }

      }

      property Rectangle Bounds 
      {

         // Gets the bounds for the curve legend.
         Rectangle get()
         {
            return Rectangle(Location,Size);
         }

      }

      property Point Location 
      {

         // Gets or sets the location for the curve legend.
         Point get()
         {
            return location;
         }

         void set( Point value )
         {
            location = value;
            chart->Invalidate();
            
            // Notifies the chart of the location change. This is used
 for
            // the accessibility information. AccessibleEvents::LocationChange
            // tells the chart the reason for the notification.
            chart->AccessibilityNotifyClients( AccessibleEvents::LocationChange,
 (dynamic_cast<CurveLegendAccessibleObject^>(AccessibilityObject))->ID
 );
         }

      }

      property String^ Name 
      {

         // Gets or sets the Name for the curve legend.
         String^ get()
         {
            return name;
         }

         void set( String^ value )
         {
            if ( name != value )
            {
               name = value;
               chart->Invalidate();
               
               // Notifies the chart of the name change. This is used
 for
               // the accessibility information. AccessibleEvents::NameChange
               // tells the chart the reason for the notification.
               chart->AccessibilityNotifyClients( AccessibleEvents::NameChange,
 (dynamic_cast<CurveLegendAccessibleObject^>(AccessibilityObject))->ID
 );
            }
         }

      }

      property bool Selected 
      {

         // Gets or sets the Selected state for the curve legend.
         bool get()
         {
            return selected;
         }

         void set( bool
 value )
         {
            if ( selected != value )
            {
               selected = value;
               chart->Invalidate();
               
               // Notifies the chart of the selection value change.
 This is used for
               // the accessibility information. The AccessibleEvents
 value depends upon
               // if the selection is true (AccessibleEvents::SelectionAdd)
 or
               // false (AccessibleEvents::SelectionRemove).
               chart->AccessibilityNotifyClients( selected ? AccessibleEvents::SelectionAdd
 : AccessibleEvents::SelectionRemove, (dynamic_cast<CurveLegendAccessibleObject^>(AccessibilityObject))->ID
 );
            }
         }

      }

      property System::Drawing::Size Size 
      {

         // Gets the Size for the curve legend.
         System::Drawing::Size get()
         {
            int legendHeight = chart->Font->Height + 4;
            Graphics^ g = chart->CreateGraphics();
            int legendWidth = (int)g->MeasureString(
 Name, chart->Font ).Width + 4;
            return System::Drawing::Size( legendWidth, legendHeight
 );
         }

      }

   };


private:

   // class CurveLegend
   CurveLegend^ legend1;
   CurveLegend^ legend2;

public:
   ChartControl()
   {
      
      // The ChartControl draws the chart in the OnPaint .
      SetStyle( ControlStyles::ResizeRedraw, true );
      SetStyle( ControlStyles::DoubleBuffer, true );
      SetStyle( ControlStyles::AllPaintingInWmPaint, true );
      this->BackColor = System::Drawing::Color::White;
      this->Name = "ChartControl";
      this->Click += gcnew System::EventHandler( this,
 &ChartControl::ChartControl_Click );
      this->QueryAccessibilityHelp += gcnew System::Windows::Forms::QueryAccessibilityHelpEventHandler(
 this, &ChartControl::ChartControl_QueryAccessibilityHelp
 );
      
      // The CurveLengend is not Control-based, it just
      // represents the parts of the legend.
      legend1 = gcnew CurveLegend( this,"A" );
      legend1->Location = Point(20,30);
      legend2 = gcnew CurveLegend( this,"B" );
      legend2->Location = Point(20,50);
   }



protected:
   // Overridden to return the custom AccessibleObject
   // for the entire chart.
   virtual AccessibleObject^ CreateAccessibilityInstance() override
   {
      return gcnew ChartControlAccessibleObject( this
 );
   }

   virtual void OnPaint( PaintEventArgs^ e ) override
   {
      
      // The ChartControl draws the chart in the OnPaint .
      System::Windows::Forms::UserControl::OnPaint( e );
      Rectangle bounds = this->ClientRectangle;
      int border = 5;
      
      // Draws the legends first.
      StringFormat^ format = gcnew StringFormat;
      format->Alignment = StringAlignment::Center;
      format->LineAlignment = StringAlignment::Center;
      if ( legend1 != nullptr )
      {
         if ( legend1->Selected )
         {
            e->Graphics->FillRectangle( gcnew SolidBrush( Color::Blue ), legend1->Bounds
 );
         }
         else
         {
            e->Graphics->DrawRectangle( Pens::Blue, legend1->Bounds );
         }

         e->Graphics->DrawString( legend1->Name, this->Font,
 Brushes::Black, legend1->Bounds, format );
      }

      if ( legend2 != nullptr )
      {
         if ( legend2->Selected )
         {
            e->Graphics->FillRectangle( gcnew SolidBrush( Color::Red ), legend2->Bounds
 );
         }
         else
         {
            e->Graphics->DrawRectangle( Pens::Red, legend2->Bounds );
         }

         e->Graphics->DrawString( legend2->Name, this->Font,
 Brushes::Black, legend2->Bounds, format );
      }

      
      // Charts out the actual curves that represent data in the Chart.
      bounds.Inflate(  -border,  -border );
      array<Point>^ temp1 = {Point(bounds.Left,bounds.Bottom),Point(bounds.Left
 + bounds.Width / 3,bounds.Top + bounds.Height / 5),Point(bounds.Right - bounds.Width
 / 3,(bounds.Top + bounds.Bottom) / 2),Point(bounds.Right,bounds.Top)};
      array<Point>^curve1 = temp1;
      array<Point>^ temp2 = {Point(bounds.Left,bounds.Bottom - bounds.Height
 / 3),Point(bounds.Left + bounds.Width / 3,bounds.Top + bounds.Height / 5),Point(bounds.Right
 - bounds.Width / 3,(bounds.Top + bounds.Bottom) / 2),Point(bounds.Right,bounds.Top + bounds.Height / 2)};
      array<Point>^curve2 = temp2;
      
      // Draws the actual curve only if it is selected.
      if ( legend1->Selected )
            e->Graphics->DrawCurve( Pens::Blue, curve1 );

      if ( legend2->Selected )
            e->Graphics->DrawCurve( Pens::Red, curve2 );

      e->Graphics->DrawRectangle( Pens::Blue, bounds );
   }

   // Handles the QueryAccessibilityHelp event.
   void ChartControl_QueryAccessibilityHelp( Object^ /*sender*/,
 System::Windows::Forms::QueryAccessibilityHelpEventArgs^ e )
   {
      e->HelpString = "Displays chart data";
   }

   // Handles the Click event for the chart.
   // Toggles the selection of whatever legend was clicked on
   void ChartControl_Click( Object^ /*sender*/, System::EventArgs^
 /*e*/ )
   {
      Point pt = this->PointToClient( Control::MousePosition
 );
      if ( legend1->Bounds.Contains( pt ) )
      {
         legend1->Selected =  !legend1->Selected;
      }
      else
      if ( legend2->Bounds.Contains( pt ) )
      {
         legend2->Selected =  !legend2->Selected;
      }
   }


public:

   property array<CurveLegend^>^ Legends 
   {

      // Gets an array of CurveLengends used in the Chart.
      array<CurveLegend^>^ get()
      {
         array<CurveLegend^>^temp3 = {legend1,legend2};
         return temp3;
      }

   }

   // 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
};


// class ChartControl
public ref class Form1: public
 System::Windows::Forms::Form
{
private:

   // Test out the Chart Control.
   ChartControl^ chart1;

public:
   Form1()
   {
      
      // Create a chart control and add it to the form.
      this->chart1 = gcnew ChartControl;
      this->ClientSize = System::Drawing::Size( 920, 566 );
      this->chart1->Location = System::Drawing::Point( 47,
 16 );
      this->chart1->Size = System::Drawing::Size( 600, 400
 );
      this->Controls->Add( this->chart1
 );
   }

};


// class Form1

[STAThread]
int main()
{
   Application::Run( gcnew Form1 );
}

package ChartControl;

import System.*;
import System.Drawing.*;
import System.Windows.Forms.*;

public class Form1 extends System.Windows.Forms.Form
{
    // Test out the Chart Control.
    private ChartControl chart1;

    /** @attribute STAThread()
     */
    public static void main(String[]
 args)
    {
        Application.Run(new Form1());
    } //main

    public Form1()
    {
        // Create a chart control and add it to the form.
        this.chart1 = new ChartControl();
        this.set_ClientSize(new System.Drawing.Size(920,
 566));

        this.chart1.set_Location(new System.Drawing.Point(47,
 16));
        this.chart1.set_Size(new System.Drawing.Size(600,
 400));
        this.get_Controls().Add(this.chart1);
    } //Form1
} //Form1

// Declare a chart control that demonstrates accessibility in Windows
 Forms.
public class ChartControl extends System.Windows.Forms.UserControl
{
    private CurveLegend legend1;
    private CurveLegend legend2;

    public ChartControl()
    {
        // The ChartControl draws the chart in the OnPaint override.
        SetStyle(ControlStyles.ResizeRedraw, true);
        SetStyle(ControlStyles.DoubleBuffer, true);
        SetStyle(ControlStyles.AllPaintingInWmPaint, true);

        this.set_BackColor(System.Drawing.Color.get_White());
        this.set_Name("ChartControl");
        this.add_Click(new System.EventHandler(this.ChartControl_Click));
        this.add_QueryAccessibilityHelp(new
 System.Windows.Forms.
            QueryAccessibilityHelpEventHandler(
            this.ChartControl_QueryAccessibilityHelp));

        // The CurveLengend is not Control-based, it just
        // represents the parts of the legend.
        legend1 = new CurveLegend(this, "A");
        legend1.set_Location(new Point(20, 30));
        legend2 = new CurveLegend(this, "B");
        legend2.set_Location(new Point(20, 50));
    } //ChartControl

    // Overridden to return the custom AccessibleObject 
    // for the entire chart.
    protected AccessibleObject CreateAccessibilityInstance()
    {
        return new ChartControlAccessibleObject(this);
    } //CreateAccessibilityInstance

    protected void OnPaint(PaintEventArgs e)
    {
        // The ChartControl draws the chart in the OnPaint override.
        super.OnPaint(e);
        Rectangle bounds = this.get_ClientRectangle();
        int border = 5;
        // Draws the legends first.
        StringFormat format = new StringFormat();
        format.set_Alignment(StringAlignment.Center);
        format.set_LineAlignment(StringAlignment.Center);

        if (legend1 != null) {
            if (legend1.get_Selected()) {
                e.get_Graphics().FillRectangle(new SolidBrush(Color.get_Blue())
,
                    legend1.get_Bounds());
            }
            else {
                e.get_Graphics().DrawRectangle(Pens.get_Blue(), 
                    legend1.get_Bounds());
            }
            e.get_Graphics().DrawString(legend1.get_Name(), this.get_Font(),
 
                Brushes.get_Black(), 
                RectangleF.op_Implicit(legend1.get_Bounds()), format);
        }
        if (legend2 != null) {
            if (legend2.get_Selected()) {
                e.get_Graphics().FillRectangle(new SolidBrush(Color.get_Red()),
 
                    legend2.get_Bounds());
            }
            else {
                e.get_Graphics().DrawRectangle(Pens.get_Red(),
                    legend2.get_Bounds());
            }
            e.get_Graphics().DrawString(legend2.get_Name(), this.get_Font()
,
                Brushes.get_Black(), 
                RectangleF.op_Implicit(legend2.get_Bounds()), format);
        }

        // Charts out the actual curves that represent data in the Chart.
        bounds.Inflate(-border, -border);
        Point curve1[] = new Point[] { new
 Point(bounds.get_Left(), 
            bounds.get_Bottom()), 
            new Point(bounds.get_Left() + bounds.get_Width() /
 3,
            bounds.get_Top() + bounds.get_Height() / 5), 
            new Point(bounds.get_Right() - bounds.get_Width()
 / 3, 
            (bounds.get_Top() + bounds.get_Bottom()) / 2), 
            new Point(bounds.get_Right(), bounds.get_Top()) };

        Point curve2[] = new Point[] { new
 Point(bounds.get_Left(), 
            bounds.get_Bottom() - bounds.get_Height() / 3), 
            new Point(bounds.get_Left() + bounds.get_Width() /
 3, 
            bounds.get_Top() + bounds.get_Height() / 5), 
            new Point(bounds.get_Right() - bounds.get_Width()
 / 3, 
            (bounds.get_Top() + bounds.get_Bottom()) / 2), 
            new Point(bounds.get_Right(), 
            bounds.get_Top() + bounds.get_Height() / 2) };

        // Draws the actual curve only if it is selected.
        if (legend1.get_Selected()) {
            e.get_Graphics().DrawCurve(Pens.get_Blue(), curve1);
        }
        if (legend2.get_Selected()) {
            e.get_Graphics().DrawCurve(Pens.get_Red(), curve2);
        }
        e.get_Graphics().DrawRectangle(Pens.get_Blue(), bounds);
    } //OnPaint

    // Handles the QueryAccessibilityHelp event.
    private void ChartControl_QueryAccessibilityHelp(Object
 sender, 
        System.Windows.Forms.QueryAccessibilityHelpEventArgs e)
    {
        e.set_HelpString("Displays chart data");
    } //ChartControl_QueryAccessibilityHelp

    // Handles the Click event for the chart. 
    // Toggles the selection of whatever legend was clicked on
    private void ChartControl_Click(Object
 sender, System.EventArgs e)
    {
        Point pt = this.PointToClient(Control.get_MousePosition());
        if (legend1.get_Bounds().Contains(pt)) {
            legend1.set_Selected(!(legend1.get_Selected()));
        }
        else {
            if (legend2.get_Bounds().Contains(pt)) {
                legend2.set_Selected(!(legend2.get_Selected()));
            }
        }
    } //ChartControl_Click

    // Gets an array of CurveLengends used in the Chart.
    /** @property 
     */
    public CurveLegend[] get_Legends()
    {
        return new CurveLegend[] { legend1,
 legend2 };
    } //get_Legends

    // 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

    // Inner Class that represents a legend for a curve in the chart.
    public static class
 CurveLegend
    {
        private String name;
        private ChartControl chart;
        private CurveLegendAccessibleObject accObj;
        private boolean selected = true;
        private Point location;

        public CurveLegend(ChartControl chart, String name)
        {
            this.chart = chart;
            this.name = name;
        } //CurveLegend

        // Gets the accessibility object for the curve legend.
        /** @property 
         */
        public AccessibleObject get_AccessibilityObject()
        {
            if (accObj == null) {
                accObj = new CurveLegendAccessibleObject(this);
            }
            return accObj;
        } //get_AccessibilityObject

        // Gets the bounds for the curve legend.
        /** @property 
         */
        public Rectangle get_Bounds()
        {
            return new Rectangle(get_Location(),
 get_Size());
        } //get_Bounds

        // Gets or sets the location for the curve legend.
        /** @property 
         */
        public Point get_Location()
        {
            return location;
        } //get_Location

        /** @property 
         */
        public void set_Location(Point value)
        {
            location = value;
            chart.Invalidate();
            // Notifies the chart of the location change. This is used
 for
            // the accessibility information. AccessibleEvents.LocationChange
            // tells the chart the reason for the notification.
            chart.AccessibilityNotifyClients(AccessibleEvents.LocationChange, 
                ((CurveLegendAccessibleObject)get_AccessibilityObject()).
                get_ID());
        } //set_Location

        // Gets or sets the Name for the curve legend.
        /** @property 
         */
        public String get_Name()
        {
            return name;
        } //get_Name

        /** @property 
         */
        public void set_Name(String value)
        {
            if (!name.Equals(value)) {
                name = value;
                chart.Invalidate();

                // Notifies the chart of the name change. This is used
 for
                // the accessibility information. AccessibleEvents.NameChange
                // tells the chart the reason for the notification.
                chart.AccessibilityNotifyClients(AccessibleEvents.NameChange,
                    ((CurveLegendAccessibleObject)get_AccessibilityObject()).
                    get_ID());
            }
        } //set_Name

        // Gets or sets the Selected state for the curve legend.
        /** @property 
         */
        public boolean get_Selected()
        {
            return selected;
        } //get_Selected

        /** @property 
         */
        public void set_Selected(boolean value)
        {
            if (selected != value) {
                selected = value;
                chart.Invalidate();

                // Notifies the chart of the selection value change.
 
                // This is used for the accessibility information. 
                // The AccessibleEvents value depends upon
                // if the selection is true (AccessibleEvents.SelectionAdd)
 or 
                // false (AccessibleEvents.SelectionRemove).
                chart.AccessibilityNotifyClients(selected ? 
                    AccessibleEvents.SelectionAdd : 
                    AccessibleEvents.SelectionRemove, 
                    ((CurveLegendAccessibleObject)get_AccessibilityObject()).
                    get_ID());
            }
        } //set_Selected

        // Gets the Size for the curve legend.
        /** @property 
         */
        public Size get_Size()
        {
            int legendHeight = chart.get_Font().get_Height() +
 4;
            Graphics g = chart.CreateGraphics();
            int legendWidth = (int)(g.MeasureString(get_Name(),
 
                chart.get_Font()).get_Width()) + 4;

            return new Size(legendWidth, legendHeight);
        } //get_Size

        // Inner class CurveLegendAccessibleObject represents accessible
 
        // information associated with the CurveLegend object.
        public static class
 CurveLegendAccessibleObject extends AccessibleObject
        {
            private CurveLegend curveLegend;

            public CurveLegendAccessibleObject(CurveLegend curveLegend)
            {
                this.curveLegend = curveLegend;
            } //CurveLegendAccessibleObject

            // Private property that helps get the reference to the
 parent 
            // ChartControl.
            /** @property 
             */
            private ChartControlAccessibleObject get_ChartControl()
            {
                return (ChartControlAccessibleObject)get_Parent();
            } //get_ChartControl

            // Internal helper function that returns the ID for this
 CurveLegend.
            /** @property 
             */
            int get_ID()
            {
                for (int i = 0; i < get_ChartControl().GetChildCount();
 i++) {
                    if (get_ChartControl().GetChild(i).Equals(this))
 {
                        return i;
                    }
                }
                return -1;
            } //get_ID

            // Gets the Bounds for the CurveLegend. 
            // This is used by accessibility programs.
            /** @property 
             */
            public Rectangle get_Bounds()
            {
                // The bounds is in screen coordinates.
                Point loc = curveLegend.get_Location();
                return new Rectangle(curveLegend.chart.PointToScreen(loc)
,
                    curveLegend.get_Size());
            } //get_Bounds

            // Gets or sets the Name for the CurveLegend. 
            // This is used by accessibility programs.
            /** @property 
             */
            public String get_Name()
            {
                return curveLegend.get_Name();
            } //get_Name

            /** @property 
             */
            public void set_Name(String value)
            {
                curveLegend.set_Name(value);
            } //set_Name

            // Gets the Curve Legend Parent's Accessible object.
            // This is used by accessibility programs.
            /** @property 
             */
            public AccessibleObject get_Parent()
            {
                return curveLegend.chart.get_AccessibilityObject();
            } //get_Parent

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

            // Gets the state based on the selection for the CurveLegend.
 
            // This is used by accessibility programs.
            /** @property 
             */
            public AccessibleStates get_State()
            {
                AccessibleStates state = AccessibleStates.Selectable;
                if (curveLegend.get_Selected()) {
                    state = state | AccessibleStates.Selected;
                }
                return state;
            } //get_State

            // Navigates through siblings of this CurveLegend. 
            // This is used by accessibility programs.
            public AccessibleObject Navigate(AccessibleNavigation
 navDir)
            {
                // Uses the internal NavigateFromChild helper function
 
                // that exists on ChartControlAccessibleObject.
                return get_ChartControl().NavigateFromChild(this,
 navDir);
            } //Navigate

            // Selects or unselects this CurveLegend. 
            // This is used by accessibility programs.
            public void Select(AccessibleSelection
 selection)
            {
                // Uses the internal SelectChild helper function that
 exists
                // on ChartControlAccessibleObject.
                get_ChartControl().SelectChild(this, selection);
            } //Select
        } //CurveLegendAccessibleObject
    } //CurveLegend 
} //ChartControl
継承階層継承階層
System.Object
   System.MarshalByRefObject
     System.Runtime.InteropServices.StandardOleMarshalObject
      System.Windows.Forms.AccessibleObject
         派生クラス
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

AccessibleObject コンストラクタ


AccessibleObject プロパティ


パブリック プロパティパブリック プロパティ

明示的インターフェイスの実装明示インターフェイス実装
  名前 説明
インターフェイスの明示的な実装 Accessibility.IAccessible.accChildCount  
インターフェイスの明示的な実装 Accessibility.IAccessible.accFocus  
インターフェイスの明示的な実装 Accessibility.IAccessible.accParent  
インターフェイスの明示的な実装 Accessibility.IAccessible.accSelection  
インターフェイスの明示的な実装 System.Reflection.IReflect.UnderlyingSystemType  
参照参照

AccessibleObject メソッド


パブリック メソッドパブリック メソッド

( プロテクト メソッド参照)
  名前 説明
パブリック メソッド CreateObjRef  リモート オブジェクトとの通信使用するプロキシ生成に必要な情報をすべて格納しているオブジェクト作成します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド DoDefaultAction ユーザー補助オブジェクト関連付けられた既定アクション実行します。
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンス等しかどうか判断します。 ( Object から継承されます。)
パブリック メソッド GetChild 指定したインデックスに対応する子ユーザー補助オブジェクト取得します。
パブリック メソッド GetChildCount ユーザー補助オブジェトに属する子の数を取得します。
パブリック メソッド GetFocused キーボード フォーカスを持つオブジェクト取得します。
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。)
パブリック メソッド GetHelpTopic ヘルプ トピック識別子と、このユーザー補助オブジェクト関連付けられたヘルプ ファイルへのパス取得します。
パブリック メソッド GetLifetimeService  対象インスタンス有効期間ポリシー制御する、現在の有効期間サービス オブジェクト取得します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド GetSelected 現在選択されている子を取得します。
パブリック メソッド GetType  現在のインスタンスType取得します。 ( Object から継承されます。)
パブリック メソッド HitTest 指定した画面座標にある子オブジェクト取得します。
パブリック メソッド InitializeLifetimeService  対象インスタンス有効期間ポリシー制御する、有効期間サービス オブジェクト取得します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド Navigate 他のユーザー補助オブジェクト移動します。
パブリック メソッド ReferenceEquals  指定した複数Object インスタンス同一かどうか判断します。 ( Object から継承されます。)
パブリック メソッド Select ユーザー補助オブジェクト選択項目の修正またはキーボード フォーカス移動行います。
パブリック メソッド ToString  現在の Object を表す String返します。 ( Object から継承されます。)
プロテクト メソッドプロテクト メソッド
  名前 説明
プロテクト メソッド Finalize  Objectガベージ コレクションにより収集される前に、その Objectリソース解放し、その他のクリーンアップ操作実行できるようにします。 ( Object から継承されます。)
プロテクト メソッド MemberwiseClone  オーバーロードされます。 ( MarshalByRefObject から継承されます。)
プロテクト メソッド UseStdAccessibleObjects オーバーロードされます。 オブジェクトを AccessibleObject のインスタンス関連付けます。
明示的インターフェイスの実装明示インターフェイス実装
  名前 説明
インターフェイスの明示的な実装 Accessibility.IAccessible.accDoDefaultAction 指定したオブジェクト既定アクション実行します。既定アクションがないオブジェクトあります
インターフェイスの明示的な実装 Accessibility.IAccessible.accHitTest 指定した画面座標にある子オブジェクト取得します。
インターフェイスの明示的な実装 Accessibility.IAccessible.accLocation オブジェクト現在の画面位置取得します。
インターフェイスの明示的な実装 Accessibility.IAccessible.accNavigate 現在のオブジェクト基準としてユーザー補助オブジェクト移動します。
インターフェイスの明示的な実装 Accessibility.IAccessible.accSelect ユーザー補助オブジェクト選択項目の修正またはキーボード フォーカス移動行います。
インターフェイスの明示的な実装 Accessibility.IAccessible.get_accChild ユーザー補助オブジェクト取得します。
インターフェイスの明示的な実装 Accessibility.IAccessible.get_accDefaultAction オブジェクト既定アクション説明する文字列取得します。既定アクションがないオブジェクトあります
インターフェイスの明示的な実装 Accessibility.IAccessible.get_accDescription 指定したオブジェクト外観説明する文字列取得します。説明用意されていないオブジェクトあります
インターフェイスの明示的な実装 Accessibility.IAccessible.get_accHelp オブジェクト機能または使用方法説明取得します。
インターフェイスの明示的な実装 Accessibility.IAccessible.get_accHelpTopic このユーザー補助オブジェクト関連付けられたヘルプ トピック識別子と、ヘルプ ファイルへのパス取得します。
インターフェイスの明示的な実装 Accessibility.IAccessible.get_accKeyboardShortcut ユーザー補助オブジェクトショートカット キーまたはアクセス キー取得します。
インターフェイスの明示的な実装 Accessibility.IAccessible.get_accName ユーザー補助オブジェクトの名前を取得します。
インターフェイスの明示的な実装 Accessibility.IAccessible.get_accRole ユーザー補助オブジェクト役割取得します。
インターフェイスの明示的な実装 Accessibility.IAccessible.get_accState ユーザー補助オブジェクトの状態を取得します。
インターフェイスの明示的な実装 Accessibility.IAccessible.get_accValue ユーザー補助オブジェクトの値を取得または設定します。
インターフェイスの明示的な実装 Accessibility.IAccessible.set_accName ユーザー補助オブジェクトの名前を設定します。
インターフェイスの明示的な実装 Accessibility.IAccessible.set_accValue ユーザー補助オブジェクトの値を設定します。
インターフェイスの明示的な実装 System.Reflection.IReflect.GetField 指定したフィールドバインディング フラグに対応する System.Reflection.FieldInfo オブジェクト取得します。
インターフェイスの明示的な実装 System.Reflection.IReflect.GetFields 現在のクラスすべてのフィールドに対応する System.Reflection.FieldInfo オブジェクト配列取得します。
インターフェイスの明示的な実装 System.Reflection.IReflect.GetMember すべてのパブリック メンバまたは指定した名前と一致するすべてのメンバに対応する System.Reflection.MemberInfo オブジェクト配列取得します。
インターフェイスの明示的な実装 System.Reflection.IReflect.GetMembers すべてのパブリック メンバまたは現在のクラスすべてのメンバに対応する System.Reflection.MemberInfo オブジェクト配列取得します。
インターフェイスの明示的な実装 System.Reflection.IReflect.GetMethod オーバーロードされます。  
インターフェイスの明示的な実装 System.Reflection.IReflect.GetMethods すべてのパブリック メソッドまたは現在のクラスすべてのメソッドの System.Reflection.MethodInfo オブジェクト配列取得します。
インターフェイスの明示的な実装 System.Reflection.IReflect.GetProperties すべてのパブリック プロパティまたは現在のクラスすべてのプロパティに対応する System.Reflection.PropertyInfo オブジェクト配列取得します。
インターフェイスの明示的な実装 System.Reflection.IReflect.GetProperty オーバーロードされます。  
インターフェイスの明示的な実装 System.Reflection.IReflect.InvokeMember 指定されたメンバ呼び出します。
参照参照

AccessibleObject メンバ

障害を持つユーザー合わせてアプリケーションユーザー インターフェイス (UI) を調整するために、ユーザー補助アプリケーション使用する情報を提供します。

AccessibleObject データ型公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド AccessibleObject AccessibleObject クラス新しインスタンス初期化します。
パブリック プロパティパブリック プロパティ
パブリック メソッドパブリック メソッド
( プロテクト メソッド参照)
  名前 説明
パブリック メソッド CreateObjRef  リモート オブジェクトとの通信使用するプロキシ生成に必要な情報をすべて格納しているオブジェクト作成します。 (MarshalByRefObject から継承されます。)
パブリック メソッド DoDefaultAction ユーザー補助オブジェクト関連付けられた既定アクション実行します。
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンス等しかどうか判断します。 (Object から継承されます。)
パブリック メソッド GetChild 指定したインデックスに対応する子ユーザー補助オブジェクト取得します。
パブリック メソッド GetChildCount ユーザー補助オブジェトに属する子の数を取得します。
パブリック メソッド GetFocused キーボード フォーカスを持つオブジェクト取得します。
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。)
パブリック メソッド GetHelpTopic ヘルプ トピック識別子と、このユーザー補助オブジェクト関連付けられたヘルプ ファイルへのパス取得します。
パブリック メソッド GetLifetimeService  対象インスタンス有効期間ポリシー制御する、現在の有効期間サービス オブジェクト取得します。 (MarshalByRefObject から継承されます。)
パブリック メソッド GetSelected 現在選択されている子を取得します。
パブリック メソッド GetType  現在のインスタンスType取得します。 (Object から継承されます。)
パブリック メソッド HitTest 指定した画面座標にある子オブジェクト取得します。
パブリック メソッド InitializeLifetimeService  対象インスタンス有効期間ポリシー制御する、有効期間サービス オブジェクト取得します。 (MarshalByRefObject から継承されます。)
パブリック メソッド Navigate 他のユーザー補助オブジェクト移動します。
パブリック メソッド ReferenceEquals  指定した複数Object インスタンス同一かどうか判断します。 (Object から継承されます。)
パブリック メソッド Select ユーザー補助オブジェクト選択項目の修正またはキーボード フォーカス移動行います。
パブリック メソッド ToString  現在の Object を表す String返します。 (Object から継承されます。)
プロテクト メソッドプロテクト メソッド
  名前 説明
プロテクト メソッド Finalize  Objectガベージ コレクションにより収集される前に、その Objectリソース解放し、その他のクリーンアップ操作実行できるようにします。 (Object から継承されます。)
プロテクト メソッド MemberwiseClone  オーバーロードされます。 ( MarshalByRefObject から継承されます。)
プロテクト メソッド UseStdAccessibleObjects オーバーロードされます。 オブジェクトAccessibleObjectインスタンス関連付けます。
明示的インターフェイスの実装明示インターフェイス実装
  名前 説明
インターフェイスの明示的な実装 Accessibility.IAccessible.accDoDefaultAction 指定したオブジェクト既定アクション実行します。既定アクションがないオブジェクトあります
インターフェイスの明示的な実装 Accessibility.IAccessible.accHitTest 指定した画面座標にある子オブジェクト取得します。
インターフェイスの明示的な実装 Accessibility.IAccessible.accLocation オブジェクト現在の画面位置取得します。
インターフェイスの明示的な実装 Accessibility.IAccessible.accNavigate 現在のオブジェクト基準としてユーザー補助オブジェクト移動します。
インターフェイスの明示的な実装 Accessibility.IAccessible.accSelect ユーザー補助オブジェクト選択項目の修正またはキーボード フォーカス移動行います。
インターフェイスの明示的な実装 Accessibility.IAccessible.get_accChild ユーザー補助オブジェクト取得します。
インターフェイスの明示的な実装 Accessibility.IAccessible.get_accDefaultAction オブジェクト既定アクション説明する文字列取得します。既定アクションがないオブジェクトあります
インターフェイスの明示的な実装 Accessibility.IAccessible.get_accDescription 指定したオブジェクト外観説明する文字列取得します。説明用意されていないオブジェクトあります
インターフェイスの明示的な実装 Accessibility.IAccessible.get_accHelp オブジェクト機能または使用方法説明取得します。
インターフェイスの明示的な実装 Accessibility.IAccessible.get_accHelpTopic このユーザー補助オブジェクト関連付けられたヘルプ トピック識別子と、ヘルプ ファイルへのパス取得します。
インターフェイスの明示的な実装 Accessibility.IAccessible.get_accKeyboardShortcut ユーザー補助オブジェクトショートカット キーまたはアクセス キー取得します。
インターフェイスの明示的な実装 Accessibility.IAccessible.get_accName ユーザー補助オブジェクトの名前を取得します。
インターフェイスの明示的な実装 Accessibility.IAccessible.get_accRole ユーザー補助オブジェクト役割取得します。
インターフェイスの明示的な実装 Accessibility.IAccessible.get_accState ユーザー補助オブジェクトの状態を取得します。
インターフェイスの明示的な実装 Accessibility.IAccessible.get_accValue ユーザー補助オブジェクトの値を取得または設定します。
インターフェイスの明示的な実装 Accessibility.IAccessible.set_accName ユーザー補助オブジェクトの名前を設定します。
インターフェイスの明示的な実装 Accessibility.IAccessible.set_accValue ユーザー補助オブジェクトの値を設定します。
インターフェイスの明示的な実装 System.Reflection.IReflect.GetField 指定したフィールドバインディング フラグに対応する System.Reflection.FieldInfo オブジェクト取得します。
インターフェイスの明示的な実装 System.Reflection.IReflect.GetFields 現在のクラスすべてのフィールドに対応する System.Reflection.FieldInfo オブジェクト配列取得します。
インターフェイスの明示的な実装 System.Reflection.IReflect.GetMember すべてのパブリック メンバまたは指定した名前と一致するすべてのメンバに対応する System.Reflection.MemberInfo オブジェクト配列取得します。
インターフェイスの明示的な実装 System.Reflection.IReflect.GetMembers すべてのパブリック メンバまたは現在のクラスすべてのメンバに対応する System.Reflection.MemberInfo オブジェクト配列取得します。
インターフェイスの明示的な実装 System.Reflection.IReflect.GetMethod オーバーロードされます。  
インターフェイスの明示的な実装 System.Reflection.IReflect.GetMethods すべてのパブリック メソッドまたは現在のクラスすべてのメソッドの System.Reflection.MethodInfo オブジェクト配列取得します。
インターフェイスの明示的な実装 System.Reflection.IReflect.GetProperties すべてのパブリック プロパティまたは現在のクラスすべてのプロパティに対応する System.Reflection.PropertyInfo オブジェクト配列取得します。
インターフェイスの明示的な実装 System.Reflection.IReflect.GetProperty オーバーロードされます。  
インターフェイスの明示的な実装 System.Reflection.IReflect.InvokeMember 指定されたメンバ呼び出します。
インターフェイスの明示的な実装 Accessibility.IAccessible.accChildCount  
インターフェイスの明示的な実装 Accessibility.IAccessible.accFocus  
インターフェイスの明示的な実装 Accessibility.IAccessible.accParent  
インターフェイスの明示的な実装 Accessibility.IAccessible.accSelection  
インターフェイスの明示的な実装 System.Reflection.IReflect.UnderlyingSystemType  
参照参照




英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

カテゴリ一覧

全て

ビジネス

業界用語

コンピュータ

電車

自動車・バイク

工学

建築・不動産

学問

文化

生活

ヘルスケア

趣味

スポーツ

生物

食品

人名

方言

辞書・百科事典

すべての辞書の索引

「AccessibleObject」の関連用語

AccessibleObjectのお隣キーワード

   

英語⇒日本語
日本語⇒英語
   
検索ランキング

画像から探す

高浜海水浴場

エスプレッソ

ホワイトメランチ

ミニキッチン

マーク・アンドリーセン

三光堰

アクセル

トップ





AccessibleObjectのページの著作権
Weblio 辞書情報提供元は参加元一覧にて確認できます。

  
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2017 Microsoft.All rights reserved.

©2017 Weblio RSS