AccessibleObject.Select(AccessibleSelection) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Memodifikasi pilihan atau memindahkan fokus keyboard objek yang dapat diakses.
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)
Parameter
- flags
- AccessibleSelection
Salah satu nilai AccessibleSelection.
Pengecualian
Pilihan tidak dapat dilakukan.
Contoh
Contoh berikut menunjukkan pembuatan kontrol bagan sadar aksesibilitas, menggunakan kelas AccessibleObject dan Control.ControlAccessibleObject untuk mengekspos informasi yang dapat diakses. Kontrol memplot dua kurva bersama dengan legenda. Kelas ChartControlAccessibleObject
, yang berasal dari ControlAccessibleObject
, digunakan dalam metode CreateAccessibilityInstance untuk memberikan informasi yang dapat diakses kustom untuk kontrol bagan. Karena legenda bagan bukan kontrol Control -based aktual, tetapi sebaliknya digambar oleh kontrol bagan, legenda bagan tidak memiliki informasi bawaan yang dapat diakses. Karena itu, kelas ChartControlAccessibleObject
mengambil alih metode GetChild untuk mengembalikan CurveLegendAccessibleObject
yang mewakili informasi yang dapat diakses untuk setiap bagian legenda. Ketika aplikasi yang mudah diakses menggunakan kontrol ini, kontrol dapat memberikan informasi yang dapat diakses yang diperlukan.
Kode ini menunjukkan pengesampingan metode Select. Lihat ringkasan kelas AccessibleObject untuk contoh kode lengkap.
// 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
Keterangan
Aplikasi dapat menggunakan metode ini untuk melakukan operasi pemilihan yang kompleks.
Berikut ini menjelaskan nilai AccessibleSelection mana yang akan ditentukan saat memanggil Select untuk melakukan operasi pemilihan yang kompleks.
Operasi | Kombinasi Bendera |
---|---|
Untuk mensimulasikan klik |
AccessibleSelection.TakeFocus
OR
AccessibleSelection.TakeSelection
Catatan: Kombinasi ini tidak akan memilih kontrol yang diinginkan jika dipanggil dari dalam aplikasi Anda sendiri. Namun, ini akan memiliki efek yang diinginkan, jika dipanggil dari aplikasi eksternal. |
Untuk memilih item target dengan mensimulasikan CTRL + klik |
AccessibleSelection.TakeFocus
OR
AccessibleSelection.AddSelection
|
Untuk membatalkan pilihan item target dengan mensimulasikan CTRL + klik |
AccessibleSelection.TakeFocus
OR
AccessibleSelection.RemoveSelection
|
Untuk menyimulasikan SHIFT + klik |
AccessibleSelection.TakeFocus
OR
AccessibleSelection.ExtendSelection
|
Untuk memilih rentang objek dan memfokuskan pada objek terakhir | Tentukan AccessibleSelection.TakeFocus pada objek awal untuk mengatur jangkar pilihan. Kemudian panggil Select lagi dan tentukan AccessibleSelection.TakeFocusOR AccessibleSelection.ExtendSelection pada objek terakhir. |
Untuk membatalkan pilihan semua objek | Tentukan AccessibleSelection.TakeSelection pada objek apa pun. Bendera ini membatalkan pilihan semua objek yang dipilih kecuali yang baru saja dipilih. Kemudian panggil Select lagi dan tentukan AccessibleSelection.RemoveSelection pada objek yang sama. |
Catatan Bagi Inheritor
Semua objek yang dapat dipilih atau menerima fokus keyboard harus mendukung metode ini.