Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / WinForms / Managed / System / WinForms / ToolStripOverflowButton.cs / 1305376 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XmlDocumentFragment.cs
- SqlDataSourceCommandEventArgs.cs
- GridSplitter.cs
- BCLDebug.cs
- Transform.cs
- HtmlElementErrorEventArgs.cs
- TextSelectionHighlightLayer.cs
- Matrix3D.cs
- CorrelationRequestContext.cs
- MsmqIntegrationSecurity.cs
- AutoResizedEvent.cs
- HttpResponseHeader.cs
- AnnotationComponentChooser.cs
- SchemaNamespaceManager.cs
- BamlWriter.cs
- ReferentialConstraint.cs
- FloaterBaseParagraph.cs
- EncryptedType.cs
- AliasedSlot.cs
- XmlAttributeCollection.cs
- PropertyGridEditorPart.cs
- Int64Animation.cs
- TTSEvent.cs
- Stack.cs
- BaseUriWithWildcard.cs
- OdbcInfoMessageEvent.cs
- MailAddress.cs
- TransformedBitmap.cs
- MatrixConverter.cs
- RectangleGeometry.cs
- EntityTemplateFactory.cs
- HistoryEventArgs.cs
- EncodingInfo.cs
- BatchServiceHost.cs
- VSWCFServiceContractGenerator.cs
- ToolStripLabel.cs
- IISMapPath.cs
- MDIControlStrip.cs
- ProtocolsSection.cs
- Events.cs
- AuthenticationService.cs
- Rect3DConverter.cs
- HttpApplication.cs
- dsa.cs
- DbConnectionPoolOptions.cs
- HostingEnvironmentSection.cs
- AppDomainAttributes.cs
- EventProvider.cs
- Visitor.cs
- GridPattern.cs
- FormParameter.cs
- relpropertyhelper.cs
- ArcSegment.cs
- XmlSchemaSimpleType.cs
- PropertyTab.cs
- UrlPropertyAttribute.cs
- LoginUtil.cs
- Opcode.cs
- HtmlControl.cs
- SeverityFilter.cs
- ZipPackage.cs
- ProfileProvider.cs
- MatrixAnimationUsingKeyFrames.cs
- ErrorActivity.cs
- ConfigurationSectionCollection.cs
- ProcessHostFactoryHelper.cs
- NamespaceDisplay.xaml.cs
- SafeLocalAllocation.cs
- PowerEase.cs
- PerfCounters.cs
- XmlSchemaAttribute.cs
- DebugHandleTracker.cs
- RadioButton.cs
- LayeredChannelListener.cs
- Animatable.cs
- counter.cs
- MsmqIntegrationMessageProperty.cs
- Currency.cs
- Int64KeyFrameCollection.cs
- Margins.cs
- WindowsListViewItem.cs
- ContainerFilterService.cs
- LinqDataSourceValidationException.cs
- ApplicationFileParser.cs
- GenericWebPart.cs
- UnionExpr.cs
- DateTimeConverter2.cs
- NetworkInformationPermission.cs
- Parameter.cs
- XmlName.cs
- Vector3DIndependentAnimationStorage.cs
- XmlDataImplementation.cs
- MSAANativeProvider.cs
- DefaultCommandExtensionCallback.cs
- HttpPostedFile.cs
- HostProtectionException.cs
- DateTimeSerializationSection.cs
- DesignerActionTextItem.cs
- ConcurrentStack.cs
- RadioButtonRenderer.cs