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
- CommandHelpers.cs
- CustomMenuItemCollection.cs
- JournalEntry.cs
- SignatureGenerator.cs
- WorkflowTransactionOptions.cs
- ProjectionPathBuilder.cs
- SecurityTokenValidationException.cs
- DataGridPageChangedEventArgs.cs
- RegistryPermission.cs
- ObjectDataSourceFilteringEventArgs.cs
- FixedSOMSemanticBox.cs
- BinaryQueryOperator.cs
- TraceContextRecord.cs
- xml.cs
- SafeNativeMethodsOther.cs
- SqlGatherConsumedAliases.cs
- Properties.cs
- DropShadowBitmapEffect.cs
- CuspData.cs
- DesignTimeVisibleAttribute.cs
- QilGenerator.cs
- PrefixQName.cs
- WebEvents.cs
- HttpDictionary.cs
- DbCommandDefinition.cs
- FontStretchConverter.cs
- ProcessInputEventArgs.cs
- EntityContainerRelationshipSet.cs
- ImageKeyConverter.cs
- DPTypeDescriptorContext.cs
- WizardStepCollectionEditor.cs
- VisualTreeUtils.cs
- WindowsToolbarAsMenu.cs
- XsdDateTime.cs
- NullRuntimeConfig.cs
- DoubleConverter.cs
- CultureInfoConverter.cs
- RemoteCryptoDecryptRequest.cs
- WebPartsPersonalizationAuthorization.cs
- DataGridColumnStyleMappingNameEditor.cs
- HwndMouseInputProvider.cs
- ClientApiGenerator.cs
- ListView.cs
- XmlException.cs
- MenuScrollingVisibilityConverter.cs
- HandlerFactoryCache.cs
- DataDocumentXPathNavigator.cs
- ArrayEditor.cs
- ToolStripItemCollection.cs
- Emitter.cs
- JpegBitmapEncoder.cs
- FileLoadException.cs
- ConfigUtil.cs
- DbTransaction.cs
- OracleEncoding.cs
- AudioFormatConverter.cs
- WebPartDeleteVerb.cs
- CqlIdentifiers.cs
- StandardTransformFactory.cs
- StringValueSerializer.cs
- SystemIcmpV6Statistics.cs
- HelpKeywordAttribute.cs
- ToolStripTextBox.cs
- OutgoingWebResponseContext.cs
- LayoutInformation.cs
- Switch.cs
- DummyDataSource.cs
- ResourceExpressionBuilder.cs
- DataRowExtensions.cs
- ListViewItemMouseHoverEvent.cs
- OleDbWrapper.cs
- DnsCache.cs
- SqlWebEventProvider.cs
- ImpersonationContext.cs
- NetDataContractSerializer.cs
- ExpressionTextBox.xaml.cs
- BaseTemplateParser.cs
- XmlCDATASection.cs
- Type.cs
- SafeEventLogWriteHandle.cs
- XmlSchemaDocumentation.cs
- MethodRental.cs
- FixedSOMTable.cs
- IDReferencePropertyAttribute.cs
- SecurityBindingElementImporter.cs
- SchemaCollectionPreprocessor.cs
- XmlWhitespace.cs
- Baml2006ReaderSettings.cs
- MaskedTextBoxTextEditorDropDown.cs
- NetworkInformationException.cs
- DocumentPageTextView.cs
- TimerElapsedEvenArgs.cs
- SamlConditions.cs
- QueryRewriter.cs
- documentsequencetextcontainer.cs
- DesignerVerbCollection.cs
- MethodBody.cs
- SslStream.cs
- Zone.cs
- Select.cs