AccessibleObject.Select(AccessibleSelection) Método

Definición

Modifica la selección o desplaza el foco de teclado del objeto accesible.Modifies the selection or moves the keyboard focus of the accessible object.

public:
 virtual void Select(System::Windows::Forms::AccessibleSelection flags);
public virtual void Select (System.Windows.Forms.AccessibleSelection flags);
abstract member Select : System.Windows.Forms.AccessibleSelection -> unit
override this.Select : System.Windows.Forms.AccessibleSelection -> unit
Public Overridable Sub Select (flags As AccessibleSelection)

Parámetros

flags
AccessibleSelection

Uno de los valores de AccessibleSelection.One of the AccessibleSelection values.

Excepciones

No se puede realizar la selección.The selection cannot be performed.

Ejemplos

En el ejemplo siguiente se muestra la creación de un control de gráfico que tiene en cuenta la accesibilidad mediante las clases AccessibleObject y Control.ControlAccessibleObject para exponer información accesible.The following example demonstrates the creation of an accessibility-aware chart control, using the AccessibleObject and Control.ControlAccessibleObject classes to expose accessible information. El control traza dos curvas junto con una leyenda.The control plots two curves along with a legend. La clase ChartControlAccessibleObject, que se deriva de ControlAccessibleObject, se utiliza en el método CreateAccessibilityInstance para proporcionar información de acceso personalizado para el control Chart.The ChartControlAccessibleObject class, which derives from ControlAccessibleObject, is used in the CreateAccessibilityInstance method to provide custom accessible information for the chart control. Dado que la leyenda del gráfico no es un control basado en Control real, sino que se dibuja mediante el control Chart, no tiene ninguna información accesible integrada.Since the chart legend is not an actual Control -based control, but instead is drawn by the chart control, it does not have any built-in accessible information. Por este motivo, la clase ChartControlAccessibleObject invalida el método GetChild para devolver el CurveLegendAccessibleObject que representa información accesible para cada parte de la leyenda.Because of this, the ChartControlAccessibleObject class overrides the GetChild method to return the CurveLegendAccessibleObject that represents accessible information for each part of the legend. Cuando una aplicación compatible con acceso utiliza este control, el control puede proporcionar la información accesible necesaria.When an accessible-aware application uses this control, the control can provide the necessary accessible information.

En este código se muestra cómo invalidar el método de Select.This code demonstrates shows overriding the Select method. Vea la información general sobre la clase AccessibleObject para obtener el ejemplo de código completo.See the AccessibleObject class overview for the complete code example.

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

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

Comentarios

Las aplicaciones pueden utilizar este método para realizar operaciones de selección complejas.Applications can use this method to perform complex selection operations.

A continuación se describe qué AccessibleSelection valores se especifican al llamar a Select para realizar operaciones de selección complejas.The following describes which AccessibleSelection values to specify when calling Select to perform complex selection operations.

OperaciónOperation Combinación de marcasFlag Combination
Para simular un clicTo simulate a click AccessibleSelection.TakeFocus OR AccessibleSelection.TakeSelection Nota: esta combinación no seleccionará el control deseado si se llama desde dentro de su propia aplicación.AccessibleSelection.TakeFocus OR AccessibleSelection.TakeSelection Note: This combination will not select the desired control if called from within your own application. Sin embargo, tendrá el efecto deseado si se llama desde una aplicación externa.It will have the desired effect, however, if called from an external application.
Para seleccionar un elemento de destino simulando CTRL + clicTo select a target item by simulating CTRL + click AccessibleSelection.TakeFocus OR AccessibleSelection.AddSelectionAccessibleSelection.TakeFocus OR AccessibleSelection.AddSelection
Para cancelar la selección de un elemento de destino simulando CTRL + clicTo cancel selection of a target item by simulating CTRL + click AccessibleSelection.TakeFocus OR AccessibleSelection.RemoveSelectionAccessibleSelection.TakeFocus OR AccessibleSelection.RemoveSelection
Para simular Mayús + clicTo simulate SHIFT + click AccessibleSelection.TakeFocus OR AccessibleSelection.ExtendSelectionAccessibleSelection.TakeFocus OR AccessibleSelection.ExtendSelection
Para seleccionar un intervalo de objetos y colocar el foco en el último objetoTo select a range of objects and put focus on the last object Especifique AccessibleSelection.TakeFocus en el objeto de inicio para establecer el delimitador de selección.Specify AccessibleSelection.TakeFocus on the starting object to set the selection anchor. A continuación, llame de nuevo a Select y especifique AccessibleSelection.TakeFocusORAccessibleSelection.ExtendSelection en el último objeto.Then call Select again and specify AccessibleSelection.TakeFocusORAccessibleSelection.ExtendSelection on the last object.
Para anular la selección de todos los objetosTo deselect all objects Especifique AccessibleSelection.TakeSelection en cualquier objeto.Specify AccessibleSelection.TakeSelection on any object. Esta marca anula la selección de todos los objetos seleccionados excepto el que acaba de seleccionar.This flag deselects all selected objects except the one just selected. A continuación, llame de nuevo a Select y especifique AccessibleSelection.RemoveSelection en el mismo objeto.Then call Select again and specify AccessibleSelection.RemoveSelection on the same object.

Notas a los desarrolladores de herederos

Todos los objetos que se pueden seleccionar o recibir el foco de teclado deben admitir este método.All objects that can be selected or receive the keyboard focus must support this method.

Se aplica a