AccessibleObject.Select(AccessibleSelection) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
修改選取範圍或移動可存取物件的鍵盤焦點。
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)
參數
- flags
- AccessibleSelection
其中一個 AccessibleSelection 值。
例外狀況
無法執行選取範圍。
範例
下列範例示範如何使用 AccessibleObject 和 Control.ControlAccessibleObject 類別來公開無障礙信息的輔助功能感知圖表控件。 控件會繪製兩個曲線以及圖例。 衍生自 ControlAccessibleObject
的 ChartControlAccessibleObject
類別,用於 CreateAccessibilityInstance 方法,以提供圖表控件的自定義無障礙資訊。 由於圖表圖例不是實際的 Control -based 控件,而是由圖表控件繪製,因此它沒有任何內建的可存取資訊。 因此,ChartControlAccessibleObject
類別會覆寫 GetChild 方法,以傳回代表圖例每個部分可存取資訊的 CurveLegendAccessibleObject
。 當可存取感知應用程式使用此控制項時,控制項可以提供必要的無障礙資訊。
此程式代碼示範如何覆寫 Select 方法。 如需完整的程式代碼範例,請參閱 AccessibleObject 類別概觀。
// 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
備註
應用程式可以使用這個方法來執行複雜的選取作業。
下列說明在呼叫 Select 以執行複雜選取作業時要指定的 AccessibleSelection 值。
操作 | 旗標組合 |
---|---|
模擬點選 |
AccessibleSelection.TakeFocus
OR
AccessibleSelection.TakeSelection
注意: 如果從您自己的應用程式內呼叫,此組合將不會選取所需的控件。 不過,如果從外部應用程式呼叫,就會產生所需的效果。 |
若要藉由模擬 CTRL + 按下來選取目標專案 |
AccessibleSelection.TakeFocus
OR
AccessibleSelection.AddSelection
|
若要藉由模擬 CTRL + 按兩下來取消選取目標專案 |
AccessibleSelection.TakeFocus
OR
AccessibleSelection.RemoveSelection
|
若要模擬 SHIFT + 按兩下 |
AccessibleSelection.TakeFocus
OR
AccessibleSelection.ExtendSelection
|
若要選取一系列物件,並將焦點放在最後一個物件上 | 在起始物件上指定 AccessibleSelection.TakeFocus 來設定選取錨點。 然後再次呼叫 Select,並在最後一個物件上指定 AccessibleSelection.TakeFocusOR AccessibleSelection.ExtendSelection。 |
取消選取所有物件 | 在任何物件上指定 AccessibleSelection.TakeSelection。 此旗標會取消選取所有選取的物件,但剛選取的物件除外。 然後再次呼叫 Select,並在相同的物件上指定 AccessibleSelection.RemoveSelection。 |
給繼承者的注意事項
可以選取或接收鍵盤焦點的所有物件都必須支援此方法。