Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / WinForms / Managed / System / WinForms / DataGridViewAccessibleObject.cs / 1 / DataGridViewAccessibleObject.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System.Security.Permissions; using System.Diagnostics.CodeAnalysis; using System.Drawing; namespace System.Windows.Forms { public partial class DataGridView { [ System.Runtime.InteropServices.ComVisible(true) ] ///protected class DataGridViewAccessibleObject : ControlAccessibleObject { DataGridView owner; DataGridViewTopRowAccessibleObject topRowAccessibilityObject = null; DataGridViewSelectedCellsAccessibleObject selectedCellsAccessibilityObject = null; /// public DataGridViewAccessibleObject(DataGridView owner) : base(owner) { this.owner = owner; } /// public override string Name { [SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters")] // Don't localize string "DataGridView". get { string name = this.Owner.AccessibleName; if (!String.IsNullOrEmpty(name)) { return name; } else { // The default name should not be localized. return "DataGridView"; } } } /// public override AccessibleRole Role { get { AccessibleRole role = owner.AccessibleRole; if (role != AccessibleRole.Default) { return role; } // the Default AccessibleRole is Table return AccessibleRole.Table; } } private AccessibleObject TopRowAccessibilityObject { get { if (this.topRowAccessibilityObject == null) { this.topRowAccessibilityObject = new DataGridViewTopRowAccessibleObject(this.owner); } return this.topRowAccessibilityObject; } } private AccessibleObject SelectedCellsAccessibilityObject { get { if (this.selectedCellsAccessibilityObject == null) { this.selectedCellsAccessibilityObject = new DataGridViewSelectedCellsAccessibleObject(this.owner); } return this.selectedCellsAccessibilityObject; } } /// public override AccessibleObject GetChild(int index) { if (this.owner.Columns.Count == 0) { System.Diagnostics.Debug.Assert(this.GetChildCount() == 0); return null; } if (index < 1 && this.owner.ColumnHeadersVisible) { return this.TopRowAccessibilityObject; } if (this.owner.ColumnHeadersVisible) { index--; } if (index < this.owner.Rows.GetRowCount(DataGridViewElementStates.Visible)) { int actualRowIndex = this.owner.Rows.DisplayIndexToRowIndex(index); return this.owner.Rows[actualRowIndex].AccessibilityObject; } index -= this.owner.Rows.GetRowCount(DataGridViewElementStates.Visible); if (this.owner.horizScrollBar.Visible) { if (index == 0) { return this.owner.horizScrollBar.AccessibilityObject; } else { index--; } } if (this.owner.vertScrollBar.Visible) { if (index == 0) { return this.owner.vertScrollBar.AccessibilityObject; } } return null; } /// public override int GetChildCount() { if (this.owner.Columns.Count == 0) { return 0; } int childCount = this.owner.Rows.GetRowCount(DataGridViewElementStates.Visible); // the column header collection Accessible Object if (this.owner.ColumnHeadersVisible) { childCount++; } if (this.owner.horizScrollBar.Visible) { childCount++; } if (this.owner.vertScrollBar.Visible) { childCount++; } return childCount; } /// public override AccessibleObject GetFocused() { if (this.owner.Focused && this.owner.CurrentCell != null) { return this.owner.CurrentCell.AccessibilityObject; } else { return null; } } /// public override AccessibleObject GetSelected() { return this.SelectedCellsAccessibilityObject; } /// public override AccessibleObject HitTest(int x, int y) { Point pt = this.owner.PointToClient(new Point(x, y)); HitTestInfo hti = this.owner.HitTest(pt.X, pt.Y); switch (hti.Type) { case DataGridViewHitTestType.Cell: return this.owner.Rows[hti.RowIndex].Cells[hti.ColumnIndex].AccessibilityObject; case DataGridViewHitTestType.ColumnHeader: // map the column index to the actual display index int actualDisplayIndex = this.owner.Columns.ColumnIndexToActualDisplayIndex(hti.ColumnIndex, DataGridViewElementStates.Visible); if (this.owner.RowHeadersVisible) { // increment the childIndex because the first child in the TopRowAccessibleObject is the TopLeftHeaderCellAccObj return this.TopRowAccessibilityObject.GetChild(actualDisplayIndex + 1); } else { return this.TopRowAccessibilityObject.GetChild(actualDisplayIndex); } case DataGridViewHitTestType.RowHeader: return this.owner.Rows[hti.RowIndex].AccessibilityObject; case DataGridViewHitTestType.TopLeftHeader: return this.owner.TopLeftHeaderCell.AccessibilityObject; case DataGridViewHitTestType.VerticalScrollBar: return this.owner.VerticalScrollBar.AccessibilityObject; case DataGridViewHitTestType.HorizontalScrollBar: return this.owner.HorizontalScrollBar.AccessibilityObject; default: return null; } } /// [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)] public override AccessibleObject Navigate(AccessibleNavigation navigationDirection) { switch (navigationDirection) { case AccessibleNavigation.FirstChild: return this.GetChild(0); case AccessibleNavigation.LastChild: return this.GetChild(this.GetChildCount() - 1); default: return null; } } /* [....]: why is this method defined and not used? // this method is called when the accessible object needs to be reset // Example: when the user changes the display index on a column or when the user modifies the column collection internal void Reset() { this.NotifyClients(AccessibleEvents.Reorder); } */ } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System.Security.Permissions; using System.Diagnostics.CodeAnalysis; using System.Drawing; namespace System.Windows.Forms { public partial class DataGridView { [ System.Runtime.InteropServices.ComVisible(true) ] ///protected class DataGridViewAccessibleObject : ControlAccessibleObject { DataGridView owner; DataGridViewTopRowAccessibleObject topRowAccessibilityObject = null; DataGridViewSelectedCellsAccessibleObject selectedCellsAccessibilityObject = null; /// public DataGridViewAccessibleObject(DataGridView owner) : base(owner) { this.owner = owner; } /// public override string Name { [SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters")] // Don't localize string "DataGridView". get { string name = this.Owner.AccessibleName; if (!String.IsNullOrEmpty(name)) { return name; } else { // The default name should not be localized. return "DataGridView"; } } } /// public override AccessibleRole Role { get { AccessibleRole role = owner.AccessibleRole; if (role != AccessibleRole.Default) { return role; } // the Default AccessibleRole is Table return AccessibleRole.Table; } } private AccessibleObject TopRowAccessibilityObject { get { if (this.topRowAccessibilityObject == null) { this.topRowAccessibilityObject = new DataGridViewTopRowAccessibleObject(this.owner); } return this.topRowAccessibilityObject; } } private AccessibleObject SelectedCellsAccessibilityObject { get { if (this.selectedCellsAccessibilityObject == null) { this.selectedCellsAccessibilityObject = new DataGridViewSelectedCellsAccessibleObject(this.owner); } return this.selectedCellsAccessibilityObject; } } /// public override AccessibleObject GetChild(int index) { if (this.owner.Columns.Count == 0) { System.Diagnostics.Debug.Assert(this.GetChildCount() == 0); return null; } if (index < 1 && this.owner.ColumnHeadersVisible) { return this.TopRowAccessibilityObject; } if (this.owner.ColumnHeadersVisible) { index--; } if (index < this.owner.Rows.GetRowCount(DataGridViewElementStates.Visible)) { int actualRowIndex = this.owner.Rows.DisplayIndexToRowIndex(index); return this.owner.Rows[actualRowIndex].AccessibilityObject; } index -= this.owner.Rows.GetRowCount(DataGridViewElementStates.Visible); if (this.owner.horizScrollBar.Visible) { if (index == 0) { return this.owner.horizScrollBar.AccessibilityObject; } else { index--; } } if (this.owner.vertScrollBar.Visible) { if (index == 0) { return this.owner.vertScrollBar.AccessibilityObject; } } return null; } /// public override int GetChildCount() { if (this.owner.Columns.Count == 0) { return 0; } int childCount = this.owner.Rows.GetRowCount(DataGridViewElementStates.Visible); // the column header collection Accessible Object if (this.owner.ColumnHeadersVisible) { childCount++; } if (this.owner.horizScrollBar.Visible) { childCount++; } if (this.owner.vertScrollBar.Visible) { childCount++; } return childCount; } /// public override AccessibleObject GetFocused() { if (this.owner.Focused && this.owner.CurrentCell != null) { return this.owner.CurrentCell.AccessibilityObject; } else { return null; } } /// public override AccessibleObject GetSelected() { return this.SelectedCellsAccessibilityObject; } /// public override AccessibleObject HitTest(int x, int y) { Point pt = this.owner.PointToClient(new Point(x, y)); HitTestInfo hti = this.owner.HitTest(pt.X, pt.Y); switch (hti.Type) { case DataGridViewHitTestType.Cell: return this.owner.Rows[hti.RowIndex].Cells[hti.ColumnIndex].AccessibilityObject; case DataGridViewHitTestType.ColumnHeader: // map the column index to the actual display index int actualDisplayIndex = this.owner.Columns.ColumnIndexToActualDisplayIndex(hti.ColumnIndex, DataGridViewElementStates.Visible); if (this.owner.RowHeadersVisible) { // increment the childIndex because the first child in the TopRowAccessibleObject is the TopLeftHeaderCellAccObj return this.TopRowAccessibilityObject.GetChild(actualDisplayIndex + 1); } else { return this.TopRowAccessibilityObject.GetChild(actualDisplayIndex); } case DataGridViewHitTestType.RowHeader: return this.owner.Rows[hti.RowIndex].AccessibilityObject; case DataGridViewHitTestType.TopLeftHeader: return this.owner.TopLeftHeaderCell.AccessibilityObject; case DataGridViewHitTestType.VerticalScrollBar: return this.owner.VerticalScrollBar.AccessibilityObject; case DataGridViewHitTestType.HorizontalScrollBar: return this.owner.HorizontalScrollBar.AccessibilityObject; default: return null; } } /// [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)] public override AccessibleObject Navigate(AccessibleNavigation navigationDirection) { switch (navigationDirection) { case AccessibleNavigation.FirstChild: return this.GetChild(0); case AccessibleNavigation.LastChild: return this.GetChild(this.GetChildCount() - 1); default: return null; } } /* [....]: why is this method defined and not used? // this method is called when the accessible object needs to be reset // Example: when the user changes the display index on a column or when the user modifies the column collection internal void Reset() { this.NotifyClients(AccessibleEvents.Reorder); } */ } } } // 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
- XmlnsCache.cs
- LookupBindingPropertiesAttribute.cs
- UpdateProgress.cs
- FrameworkEventSource.cs
- DictionarySectionHandler.cs
- coordinatorfactory.cs
- DataBindingExpressionBuilder.cs
- BindingOperations.cs
- NotFiniteNumberException.cs
- CryptoHandle.cs
- Point3DAnimation.cs
- SpeakProgressEventArgs.cs
- PersianCalendar.cs
- HebrewNumber.cs
- TextSpan.cs
- SafeCertificateContext.cs
- WebPartConnectionsConfigureVerb.cs
- XmlAttributeOverrides.cs
- CatalogZone.cs
- ToolStripArrowRenderEventArgs.cs
- CodeAttributeDeclaration.cs
- SystemUnicastIPAddressInformation.cs
- FieldToken.cs
- MouseGesture.cs
- ToolStripPanelRenderEventArgs.cs
- PathGeometry.cs
- SafeEventHandle.cs
- ParserStreamGeometryContext.cs
- CounterCreationDataCollection.cs
- XmlnsDictionary.cs
- InfoCardRSACryptoProvider.cs
- InputBuffer.cs
- SelectionRangeConverter.cs
- FileStream.cs
- XmlSchemaInclude.cs
- SecurityPolicySection.cs
- FieldMetadata.cs
- XmlMapping.cs
- SecurityManager.cs
- DataColumnSelectionConverter.cs
- SymDocumentType.cs
- DataView.cs
- DrawingState.cs
- DataGridViewCellParsingEventArgs.cs
- MethodToken.cs
- FolderLevelBuildProvider.cs
- SafeSystemMetrics.cs
- Encoding.cs
- _Rfc2616CacheValidators.cs
- MdiWindowListItemConverter.cs
- CommentGlyph.cs
- DynamicQueryableWrapper.cs
- Page.cs
- WebPartZoneCollection.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- EntityDataSourceEntitySetNameItem.cs
- Focus.cs
- AttributeCollection.cs
- AppliedDeviceFiltersDialog.cs
- PeerApplication.cs
- WebAdminConfigurationHelper.cs
- TextDpi.cs
- NestedContainer.cs
- DbConnectionPoolOptions.cs
- ParserContext.cs
- PolyQuadraticBezierSegment.cs
- CommentAction.cs
- ArglessEventHandlerProxy.cs
- DateTimeStorage.cs
- SafeNativeMethods.cs
- DataColumn.cs
- TableItemPatternIdentifiers.cs
- DesignTimeXamlWriter.cs
- OdbcEnvironmentHandle.cs
- TableDetailsRow.cs
- _NestedMultipleAsyncResult.cs
- ExternalFile.cs
- FragmentQuery.cs
- SpanIndex.cs
- MenuItem.cs
- ValidationResult.cs
- SamlSubject.cs
- QilStrConcatenator.cs
- SiteMapNodeItem.cs
- QueryCacheEntry.cs
- TextCollapsingProperties.cs
- MethodBuilderInstantiation.cs
- ProfileInfo.cs
- PatternMatcher.cs
- TextBlock.cs
- HitTestFilterBehavior.cs
- DataServiceExpressionVisitor.cs
- HtmlImage.cs
- WebMethodAttribute.cs
- DbLambda.cs
- ThicknessAnimationBase.cs
- Thickness.cs
- PublisherMembershipCondition.cs
- DbConnectionInternal.cs
- LassoSelectionBehavior.cs