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
- LessThan.cs
- ServiceAppDomainAssociationProvider.cs
- CurrentTimeZone.cs
- ListViewTableCell.cs
- CodeStatementCollection.cs
- WpfGeneratedKnownProperties.cs
- HtmlInputText.cs
- LoginUtil.cs
- URL.cs
- BrowserDefinitionCollection.cs
- SafeNativeHandle.cs
- TcpPortSharing.cs
- AdRotatorDesigner.cs
- AmbientLight.cs
- cryptoapiTransform.cs
- ArcSegment.cs
- TableLayoutStyle.cs
- CollectionType.cs
- TextBoxDesigner.cs
- FieldAccessException.cs
- WebSysDescriptionAttribute.cs
- OleDbCommand.cs
- ObjectDataSourceDisposingEventArgs.cs
- NumericUpDownAcceleration.cs
- AssemblyInfo.cs
- MouseButton.cs
- TypeSemantics.cs
- CompilerLocalReference.cs
- NamespaceInfo.cs
- ReadonlyMessageFilter.cs
- CompilationRelaxations.cs
- BoundField.cs
- IisTraceWebEventProvider.cs
- TdsEnums.cs
- PermissionRequestEvidence.cs
- DataBindEngine.cs
- Panel.cs
- EventWaitHandle.cs
- DataControlImageButton.cs
- MiniLockedBorderGlyph.cs
- SingleStorage.cs
- ItemCheckedEvent.cs
- DependencyPropertyHelper.cs
- FullTextState.cs
- HttpModulesSection.cs
- HasCopySemanticsAttribute.cs
- XpsFilter.cs
- unsafenativemethodsother.cs
- userdatakeys.cs
- TitleStyle.cs
- SelectionProviderWrapper.cs
- AsyncStreamReader.cs
- DrawingContextDrawingContextWalker.cs
- DataBindingCollection.cs
- JsonReaderDelegator.cs
- ACE.cs
- StreamUpgradeInitiator.cs
- PropertiesTab.cs
- BitmapPalettes.cs
- ToolBarOverflowPanel.cs
- EqualityComparer.cs
- XmlDocument.cs
- BamlWriter.cs
- Msmq.cs
- Binding.cs
- DebuggerAttributes.cs
- WbmpConverter.cs
- sortedlist.cs
- ListControlDesigner.cs
- ClientProxyGenerator.cs
- XmlSchemaSimpleTypeRestriction.cs
- BitmapSizeOptions.cs
- AnimationStorage.cs
- ReflectionTypeLoadException.cs
- Form.cs
- SqlCacheDependencySection.cs
- PublishLicense.cs
- LightweightEntityWrapper.cs
- XmlSchemaAny.cs
- InstanceStoreQueryResult.cs
- JpegBitmapEncoder.cs
- OverrideMode.cs
- _DynamicWinsockMethods.cs
- FormView.cs
- DBCommandBuilder.cs
- Vector.cs
- SafeNativeMethods.cs
- LinkedResource.cs
- fixedPageContentExtractor.cs
- AppDomain.cs
- TextShapeableCharacters.cs
- HyperlinkAutomationPeer.cs
- RouteParameter.cs
- SafeEventLogWriteHandle.cs
- XmlSerializer.cs
- PocoEntityKeyStrategy.cs
- UnsafeNativeMethods.cs
- CharacterString.cs
- SurrogateDataContract.cs
- UnsafeNativeMethods.cs