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
- OleDbConnectionFactory.cs
- TextProperties.cs
- SplineKeyFrames.cs
- DemultiplexingDispatchMessageFormatter.cs
- WinFormsUtils.cs
- XmlElementCollection.cs
- FacetChecker.cs
- ParallelForEach.cs
- HitTestWithPointDrawingContextWalker.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- DiscardableAttribute.cs
- METAHEADER.cs
- DataMemberAttribute.cs
- Parameter.cs
- XPathNodeInfoAtom.cs
- ContainerSelectorActiveEvent.cs
- Evaluator.cs
- IndependentAnimationStorage.cs
- ToolBar.cs
- ACL.cs
- TabItemAutomationPeer.cs
- TemplateManager.cs
- RegionInfo.cs
- UIElement3D.cs
- DBNull.cs
- SafeCryptoHandles.cs
- FunctionNode.cs
- BlurEffect.cs
- MembershipSection.cs
- DynamicQueryableWrapper.cs
- PropertyNames.cs
- Utils.cs
- PageBuildProvider.cs
- InitializationEventAttribute.cs
- Command.cs
- basevalidator.cs
- TrackingLocationCollection.cs
- FrameDimension.cs
- SqlUserDefinedTypeAttribute.cs
- XmlSchemaComplexContentExtension.cs
- BuildProvidersCompiler.cs
- UpdateManifestForBrowserApplication.cs
- StringFreezingAttribute.cs
- CodeMemberMethod.cs
- GridItemProviderWrapper.cs
- AnnotationService.cs
- Color.cs
- CheckedListBox.cs
- FixedPageAutomationPeer.cs
- GenericEnumConverter.cs
- FlowDocumentPaginator.cs
- ScaleTransform.cs
- Dictionary.cs
- Viewport3DVisual.cs
- AppDomainManager.cs
- HitTestFilterBehavior.cs
- WindowsFormsSynchronizationContext.cs
- StopStoryboard.cs
- VBCodeProvider.cs
- XmlNullResolver.cs
- OperationAbortedException.cs
- Blend.cs
- GenericPrincipal.cs
- OleDbSchemaGuid.cs
- VoiceInfo.cs
- StatusBarItemAutomationPeer.cs
- ConfigPathUtility.cs
- ExceptionNotification.cs
- CodeSubDirectoriesCollection.cs
- AnnotationAuthorChangedEventArgs.cs
- DocumentOrderComparer.cs
- ExclusiveTcpListener.cs
- MembershipSection.cs
- BitmapMetadata.cs
- ChannelSinkStacks.cs
- TagPrefixCollection.cs
- SchemaUtility.cs
- RotateTransform.cs
- AdRotator.cs
- DetailsViewUpdateEventArgs.cs
- MediaElementAutomationPeer.cs
- PartitionerStatic.cs
- HttpListenerElement.cs
- TextAutomationPeer.cs
- SchemaMerger.cs
- wgx_commands.cs
- OracleInternalConnection.cs
- PropertySegmentSerializer.cs
- WindowInteropHelper.cs
- ParseHttpDate.cs
- PropertyValueChangedEvent.cs
- XmlSchemaParticle.cs
- Msec.cs
- CapacityStreamGeometryContext.cs
- LineInfo.cs
- TypeConverterHelper.cs
- DecoratedNameAttribute.cs
- EventMappingSettingsCollection.cs
- ToolboxItemCollection.cs
- TemplateControlBuildProvider.cs