Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / WinForms / Managed / System / WinForms / ToolStripOverflowButton.cs / 1 / ToolStripOverflowButton.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms { using System; using System.Collections; using System.ComponentModel; using System.Drawing; using System.Diagnostics; using System.Windows.Forms.Design; ////// /// ToolStripOverflowButton /// [ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.None)] public class ToolStripOverflowButton : ToolStripDropDownButton { // we need to cache this away as the Parent property gets reset a lot. private ToolStrip parentToolStrip; ///[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] internal ToolStripOverflowButton(ToolStrip parentToolStrip) { SupportsItemClick = false; this.parentToolStrip = parentToolStrip; } /// protected internal override Padding DefaultMargin { get { return Padding.Empty; } } /// public override bool HasDropDownItems { get { return this.ParentInternal.OverflowItems.Count > 0; } } internal override bool OppositeDropDownAlign { get { return true; } } internal ToolStrip ParentToolStrip { get { return parentToolStrip; } } [ Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public new bool RightToLeftAutoMirrorImage { get { return base.RightToLeftAutoMirrorImage; } set { base.RightToLeftAutoMirrorImage = value; } } protected override AccessibleObject CreateAccessibilityInstance() { return new ToolStripOverflowButtonAccessibleObject(this); } /// protected override ToolStripDropDown CreateDefaultDropDown() { // AutoGenerate a Winbar DropDown - set the property so we hook events return new ToolStripOverflow(this); } /// public override Size GetPreferredSize(Size constrainingSize) { Size preferredSize = constrainingSize; if (this.ParentInternal != null) { if (this.ParentInternal.Orientation == Orientation.Horizontal) { preferredSize.Width = Math.Min(constrainingSize.Width, 16); } else { preferredSize.Height = Math.Min(constrainingSize.Height, 16); } } return preferredSize + this.Padding.Size; } // make sure the Overflow button extends from edge-edge. (Ignore Padding/Margin). internal protected override void SetBounds(Rectangle bounds) { if (ParentInternal != null && ParentInternal.LayoutEngine is ToolStripSplitStackLayout) { if (ParentInternal.Orientation == Orientation.Horizontal) { bounds.Height = ParentInternal.Height; bounds.Y = 0; } else { bounds.Width = ParentInternal.Width; bounds.X = 0; } } base.SetBounds(bounds); } /// protected override void OnPaint(PaintEventArgs e) { if (this.ParentInternal != null) { ToolStripRenderer renderer = this.ParentInternal.Renderer; renderer.DrawOverflowButtonBackground(new ToolStripItemRenderEventArgs(e.Graphics, this)); } } internal class ToolStripOverflowButtonAccessibleObject : ToolStripDropDownItemAccessibleObject { private string stockName; public ToolStripOverflowButtonAccessibleObject(ToolStripOverflowButton owner) : base(owner){ } public override string Name { get { string name = Owner.AccessibleName; if (name != null) { return name; } if (string.IsNullOrEmpty(stockName)) { stockName = SR.GetString(SR.ToolStripOptions); } return stockName; } set { base.Name = value; } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RuntimeResourceSet.cs
- HtmlCommandAdapter.cs
- XPathScanner.cs
- PackagingUtilities.cs
- ComPlusAuthorization.cs
- ILGen.cs
- MiniAssembly.cs
- typedescriptorpermissionattribute.cs
- IdentityHolder.cs
- ReliableChannelBinder.cs
- Utility.cs
- XmlSchemaImport.cs
- PkcsMisc.cs
- wgx_exports.cs
- ReadonlyMessageFilter.cs
- mediaeventshelper.cs
- CodeObject.cs
- DataPointer.cs
- SystemColorTracker.cs
- GridViewDesigner.cs
- FastEncoderStatics.cs
- RegionIterator.cs
- WbemProvider.cs
- WebPartCatalogCloseVerb.cs
- SapiRecoContext.cs
- XmlWriterSettings.cs
- DesignTimeVisibleAttribute.cs
- CompressEmulationStream.cs
- AuthenticationException.cs
- WeakEventManager.cs
- InitializingNewItemEventArgs.cs
- XmlBinaryReader.cs
- InlinedAggregationOperatorEnumerator.cs
- ITreeGenerator.cs
- ValidationRuleCollection.cs
- WebPartVerb.cs
- SqlException.cs
- ViewValidator.cs
- XmlILModule.cs
- AssemblySettingAttributes.cs
- CodeRegionDirective.cs
- DifferencingCollection.cs
- PerformanceCounterPermission.cs
- XPathException.cs
- PackageRelationshipSelector.cs
- ExplicitDiscriminatorMap.cs
- DllHostedComPlusServiceHost.cs
- StrokeCollection2.cs
- DataGridBeginningEditEventArgs.cs
- SweepDirectionValidation.cs
- TypeDescriptorContext.cs
- CustomGrammar.cs
- CompiledAction.cs
- ToolStripRenderer.cs
- HtmlEmptyTagControlBuilder.cs
- MaskedTextBoxTextEditorDropDown.cs
- GlobalItem.cs
- ResetableIterator.cs
- KoreanLunisolarCalendar.cs
- PropertyGeneratedEventArgs.cs
- ToolStripProgressBar.cs
- IDQuery.cs
- ToolboxItemCollection.cs
- SessionStateModule.cs
- FileUtil.cs
- invalidudtexception.cs
- CompoundFileDeflateTransform.cs
- MemberHolder.cs
- FileChangeNotifier.cs
- _HeaderInfo.cs
- Region.cs
- FormViewDeletedEventArgs.cs
- Monitor.cs
- CssStyleCollection.cs
- SessionConnectionReader.cs
- TargetInvocationException.cs
- FormattedText.cs
- recordstatefactory.cs
- WmlValidationSummaryAdapter.cs
- SafeNativeMethods.cs
- RegexGroupCollection.cs
- SubtreeProcessor.cs
- TypeElement.cs
- FlowLayoutPanelDesigner.cs
- WebRequestModuleElementCollection.cs
- Nullable.cs
- ValueSerializerAttribute.cs
- ClientEventManager.cs
- ColumnHeaderConverter.cs
- SinglePhaseEnlistment.cs
- HwndSourceParameters.cs
- CustomPopupPlacement.cs
- Part.cs
- MemberHolder.cs
- IntranetCredentialPolicy.cs
- FileFormatException.cs
- ContentPlaceHolderDesigner.cs
- GridItemPatternIdentifiers.cs
- ToolStripRenderer.cs
- CaseInsensitiveHashCodeProvider.cs