Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / WinForms / Managed / System / WinForms / DataGridViewTopRowAccessibleObject.cs / 1305376 / DataGridViewTopRowAccessibleObject.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
using System.Security.Permissions;
using System.Drawing;
using System.Diagnostics;
namespace System.Windows.Forms
{
public partial class DataGridView
{
///
[
System.Runtime.InteropServices.ComVisible(true)
]
protected class DataGridViewTopRowAccessibleObject : AccessibleObject
{
DataGridView owner;
///
public DataGridViewTopRowAccessibleObject() : base()
{
}
///
public DataGridViewTopRowAccessibleObject(DataGridView owner) : base()
{
this.owner = owner;
}
///
public override Rectangle Bounds
{
get
{
if (this.owner == null)
{
throw new InvalidOperationException(SR.GetString(SR.DataGridViewTopRowAccessibleObject_OwnerNotSet));
}
if (this.owner.ColumnHeadersVisible)
{
Rectangle rect = Rectangle.Union(this.owner.layout.ColumnHeaders, this.owner.layout.TopLeftHeader);
return this.owner.RectangleToScreen(rect);
}
else
{
return Rectangle.Empty;
}
}
}
///
public override string Name
{
get
{
return SR.GetString(SR.DataGridView_AccTopRow);
}
}
///
public DataGridView Owner
{
get
{
return this.owner;
}
set
{
if (this.owner != null)
{
throw new InvalidOperationException(SR.GetString(SR.DataGridViewTopRowAccessibleObject_OwnerAlreadySet));
}
this.owner = value;
}
}
///
public override AccessibleObject Parent
{
[SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
get
{
if (this.owner == null)
{
throw new InvalidOperationException(SR.GetString(SR.DataGridViewTopRowAccessibleObject_OwnerNotSet));
}
return this.owner.AccessibilityObject;
}
}
///
public override AccessibleRole Role
{
get
{
return AccessibleRole.Row;
}
}
///
public override string Value
{
[SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
get
{
return this.Name;
}
}
///
public override AccessibleObject GetChild(int index)
{
if (this.owner == null)
{
throw new InvalidOperationException(SR.GetString(SR.DataGridViewTopRowAccessibleObject_OwnerNotSet));
}
if (index < 0)
{
throw new ArgumentOutOfRangeException("index");
}
if (index == 0 && this.owner.RowHeadersVisible)
{
return this.owner.TopLeftHeaderCell.AccessibilityObject;
}
if (this.owner.RowHeadersVisible)
{
// decrement the index because the first child is the top left header cell
index --;
}
Debug.Assert(index >= 0);
if (index < this.owner.Columns.GetColumnCount(DataGridViewElementStates.Visible))
{
int actualColumnIndex = this.owner.Columns.ActualDisplayIndexToColumnIndex(index, DataGridViewElementStates.Visible);
return this.owner.Columns[actualColumnIndex].HeaderCell.AccessibilityObject;
}
else
{
return null;
}
}
///
public override int GetChildCount()
{
if (this.owner == null)
{
throw new InvalidOperationException(SR.GetString(SR.DataGridViewTopRowAccessibleObject_OwnerNotSet));
}
int result = this.owner.Columns.GetColumnCount(DataGridViewElementStates.Visible);
if (this.owner.RowHeadersVisible)
{
// + 1 is the top left header cell accessibility object
result ++;
}
return result;
}
///
[SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
public override AccessibleObject Navigate(AccessibleNavigation navigationDirection)
{
if (this.owner == null)
{
throw new InvalidOperationException(SR.GetString(SR.DataGridViewTopRowAccessibleObject_OwnerNotSet));
}
switch (navigationDirection)
{
case AccessibleNavigation.Down:
case AccessibleNavigation.Next:
if (this.owner.AccessibilityObject.GetChildCount() > 1)
{
return this.owner.AccessibilityObject.GetChild(1);
}
else
{
return null;
}
case AccessibleNavigation.FirstChild:
return this.GetChild(0);
case AccessibleNavigation.LastChild:
return this.GetChild(this.GetChildCount() - 1);
default:
return null;
}
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CommentEmitter.cs
- TextTreeInsertElementUndoUnit.cs
- DrawListViewItemEventArgs.cs
- StateManagedCollection.cs
- base64Transforms.cs
- ResourceReferenceKeyNotFoundException.cs
- DataMemberAttribute.cs
- ITreeGenerator.cs
- Icon.cs
- AttributeData.cs
- XmlReflectionMember.cs
- UpdateExpressionVisitor.cs
- DocobjHost.cs
- QuaternionAnimation.cs
- Stroke.cs
- ToolStripSplitButton.cs
- NavigationPropertyAccessor.cs
- _ListenerResponseStream.cs
- PointLightBase.cs
- mda.cs
- LambdaSerializationException.cs
- WebBrowserPermission.cs
- CaseCqlBlock.cs
- SystemMulticastIPAddressInformation.cs
- CollectionChange.cs
- AppSettingsReader.cs
- XamlLoadErrorInfo.cs
- AudioFormatConverter.cs
- FilterElement.cs
- RepeaterDesigner.cs
- Condition.cs
- EntityModelSchemaGenerator.cs
- CreateParams.cs
- HostedNamedPipeTransportManager.cs
- __FastResourceComparer.cs
- Pair.cs
- DataReaderContainer.cs
- DataSourceXmlSerializer.cs
- DecoderExceptionFallback.cs
- FullTextBreakpoint.cs
- HtmlElementCollection.cs
- PartitionResolver.cs
- MemberProjectedSlot.cs
- EdmItemCollection.cs
- FontFaceLayoutInfo.cs
- TemplateGroupCollection.cs
- StreamWithDictionary.cs
- RightsManagementProvider.cs
- DocumentPage.cs
- SystemColors.cs
- WindowsPrincipal.cs
- PathData.cs
- ZipIOLocalFileBlock.cs
- SplitterPanelDesigner.cs
- InkCanvas.cs
- Perspective.cs
- ExpressionBuilderCollection.cs
- EditorBrowsableAttribute.cs
- ProfileModule.cs
- ClientTargetCollection.cs
- DataGridLinkButton.cs
- WindowsScrollBarBits.cs
- DesignerCategoryAttribute.cs
- ImageClickEventArgs.cs
- TypographyProperties.cs
- OperatingSystem.cs
- EventOpcode.cs
- RoleManagerEventArgs.cs
- NetworkAddressChange.cs
- XmlAtomErrorReader.cs
- SByte.cs
- KnownIds.cs
- SafeNativeMethodsOther.cs
- GridLength.cs
- DomNameTable.cs
- _SafeNetHandles.cs
- SizeChangedEventArgs.cs
- PathFigure.cs
- TextContainerChangedEventArgs.cs
- CodeTypeParameter.cs
- NonBatchDirectoryCompiler.cs
- SystemUnicastIPAddressInformation.cs
- ConsumerConnectionPointCollection.cs
- EventListenerClientSide.cs
- XPathMessageFilterElementComparer.cs
- FilterQueryOptionExpression.cs
- ObfuscateAssemblyAttribute.cs
- XamlFigureLengthSerializer.cs
- ObjectDataProvider.cs
- DateTimeFormat.cs
- File.cs
- CompareValidator.cs
- DBAsyncResult.cs
- CheckBoxList.cs
- ProcessModelInfo.cs
- DependencyObjectValidator.cs
- Matrix3DConverter.cs
- MethodCallExpression.cs
- TextEditorTyping.cs
- DBConcurrencyException.cs