|
//------------------------------------------------------------------------------
// <copyright file="DataGridViewSelectedCellsAccessibleObject.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
using System.Security.Permissions;
namespace System.Windows.Forms
{
public partial class DataGridView
{
private class DataGridViewSelectedCellsAccessibleObject : AccessibleObject
{
DataGridView owner;
public DataGridViewSelectedCellsAccessibleObject(DataGridView owner)
{
this.owner = owner;
}
public override string Name
{
get
{
return SR.GetString(SR.DataGridView_AccSelectedCellsName);
}
}
public override AccessibleObject Parent
{
[SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
get
{
return this.owner.AccessibilityObject;
}
}
public override AccessibleRole Role
{
get
{
return AccessibleRole.Grouping;
}
}
public override AccessibleStates State
{
get
{
return AccessibleStates.Selected | AccessibleStates.Selectable;
}
}
public override string Value
{
[SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
get
{
return this.Name;
}
}
public override AccessibleObject GetChild(int index)
{
if (index >= 0 && index < this.owner.GetCellCount(DataGridViewElementStates.Selected))
{
return this.owner.SelectedCell(index).AccessibilityObject;
}
else
{
return null;
}
}
public override int GetChildCount()
{
return this.owner.GetCellCount(DataGridViewElementStates.Selected);
}
public override AccessibleObject GetSelected()
{
return this;
}
public override AccessibleObject GetFocused()
{
if (this.owner.CurrentCell != null && this.owner.CurrentCell.Selected)
{
return this.owner.CurrentCell.AccessibilityObject;
}
else
{
return null;
}
}
[SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
public override AccessibleObject Navigate(AccessibleNavigation navigationDirection)
{
switch (navigationDirection)
{
case AccessibleNavigation.FirstChild:
if (this.owner.GetCellCount(DataGridViewElementStates.Selected) > 0)
{
return this.owner.SelectedCell(0).AccessibilityObject;
}
else
{
return null;
}
case AccessibleNavigation.LastChild:
if (this.owner.GetCellCount(DataGridViewElementStates.Selected) > 0)
{
return this.owner.SelectedCell(this.owner.GetCellCount(DataGridViewElementStates.Selected) - 1).AccessibilityObject;
}
else
{
return null;
}
default:
{
return null;
}
}
}
}
}
}
|