Code:
/ FX-1434 / FX-1434 / 1.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
- FontFamily.cs
- TransformedBitmap.cs
- NeutralResourcesLanguageAttribute.cs
- PointLight.cs
- IssuedTokenServiceCredential.cs
- UserControlBuildProvider.cs
- RuntimeArgumentHandle.cs
- DesignerActionItemCollection.cs
- HttpListenerResponse.cs
- SimpleBitVector32.cs
- DataGridViewHitTestInfo.cs
- NavigationFailedEventArgs.cs
- ParameterExpression.cs
- Quaternion.cs
- StreamReader.cs
- PolygonHotSpot.cs
- HwndHostAutomationPeer.cs
- HttpProfileBase.cs
- loginstatus.cs
- AtomEntry.cs
- ItemsPresenter.cs
- PolicyChain.cs
- EventHandlersStore.cs
- NativeObjectSecurity.cs
- ConnectionStringsExpressionEditor.cs
- DataGridView.cs
- sqlstateclientmanager.cs
- PrePrepareMethodAttribute.cs
- VisualBrush.cs
- DataColumnMapping.cs
- FacetChecker.cs
- ListView.cs
- ItemCollectionEditor.cs
- X509ServiceCertificateAuthenticationElement.cs
- PkcsMisc.cs
- AccessedThroughPropertyAttribute.cs
- PersonalizablePropertyEntry.cs
- Interlocked.cs
- DBPropSet.cs
- X509CertificateStore.cs
- columnmapfactory.cs
- FaultException.cs
- PanelStyle.cs
- SimpleHandlerFactory.cs
- CommandCollectionEditor.cs
- ClickablePoint.cs
- FloatUtil.cs
- DataGridItemAttachedStorage.cs
- ParameterElementCollection.cs
- PngBitmapEncoder.cs
- XhtmlBasicCalendarAdapter.cs
- ToolStripDesigner.cs
- ColumnPropertiesGroup.cs
- ObjectContext.cs
- ConfigurationUtility.cs
- RawMouseInputReport.cs
- DesignerVerb.cs
- DataColumnChangeEvent.cs
- PointConverter.cs
- QuaternionKeyFrameCollection.cs
- FreezableCollection.cs
- ExtensibleSyndicationObject.cs
- MethodBuilder.cs
- objectquery_tresulttype.cs
- AdapterUtil.cs
- KeyValueInternalCollection.cs
- DbConnectionStringBuilder.cs
- ModuleBuilder.cs
- DragSelectionMessageFilter.cs
- WebPart.cs
- GreenMethods.cs
- BackgroundFormatInfo.cs
- CompositeCollection.cs
- PropertyEntry.cs
- AvTrace.cs
- PointValueSerializer.cs
- UshortList2.cs
- Geometry.cs
- InputProviderSite.cs
- EmptyEnumerator.cs
- figurelengthconverter.cs
- ContentType.cs
- CodeTypeReferenceSerializer.cs
- SymbolEqualComparer.cs
- DataGridViewComponentPropertyGridSite.cs
- UpdateProgress.cs
- RelatedImageListAttribute.cs
- OdbcConnection.cs
- CodeIdentifier.cs
- EventLogPermissionEntryCollection.cs
- ContourSegment.cs
- DataGridViewComponentPropertyGridSite.cs
- NavigatorOutput.cs
- EnumUnknown.cs
- CanExecuteRoutedEventArgs.cs
- ObjectItemCollection.cs
- UInt32Storage.cs
- DataView.cs
- NegatedConstant.cs
- TextDecoration.cs