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
- ConnectionString.cs
- ActivityExecutor.cs
- EnumBuilder.cs
- SystemNetHelpers.cs
- Rect3D.cs
- TreeNodeEventArgs.cs
- ChtmlTextWriter.cs
- RequestCacheValidator.cs
- AssemblyCache.cs
- DesignSurfaceEvent.cs
- Zone.cs
- DllNotFoundException.cs
- namescope.cs
- SqlUdtInfo.cs
- SystemPens.cs
- FunctionQuery.cs
- TextBreakpoint.cs
- ImageList.cs
- SqlMultiplexer.cs
- wmiprovider.cs
- XmlImplementation.cs
- ScrollViewerAutomationPeer.cs
- ProfileElement.cs
- TableRow.cs
- CompositeDataBoundControl.cs
- SafeArrayTypeMismatchException.cs
- FaultBookmark.cs
- DecoderFallbackWithFailureFlag.cs
- DateTimeUtil.cs
- WebFormsRootDesigner.cs
- IsolatedStorageFileStream.cs
- GlyphRunDrawing.cs
- ComponentChangingEvent.cs
- SerTrace.cs
- MobileControlsSectionHelper.cs
- Storyboard.cs
- Transform3DGroup.cs
- XmlReaderSettings.cs
- SpeakCompletedEventArgs.cs
- SiteMapProvider.cs
- TextSelection.cs
- WebExceptionStatus.cs
- MetadataArtifactLoaderCompositeResource.cs
- ColorAnimation.cs
- UInt32Storage.cs
- HttpVersion.cs
- DatagridviewDisplayedBandsData.cs
- MsmqInputMessage.cs
- SerializerProvider.cs
- StringKeyFrameCollection.cs
- BitmapEncoder.cs
- SiteMapPath.cs
- UseLicense.cs
- DbProviderFactory.cs
- SiteMapDataSource.cs
- TagNameToTypeMapper.cs
- GridView.cs
- SerializationException.cs
- ContainerParaClient.cs
- CollectionViewProxy.cs
- BindingExpressionUncommonField.cs
- ParallelTimeline.cs
- ConfigurationManagerHelperFactory.cs
- DashStyle.cs
- HMACMD5.cs
- CryptoKeySecurity.cs
- CompositeFontInfo.cs
- ConfigPathUtility.cs
- ImagingCache.cs
- TimeIntervalCollection.cs
- StyleXamlTreeBuilder.cs
- XmlException.cs
- DragCompletedEventArgs.cs
- WindowsFormsDesignerOptionService.cs
- NameValueCollection.cs
- precedingsibling.cs
- ImportDesigner.xaml.cs
- RotationValidation.cs
- MergeLocalizationDirectives.cs
- VariableAction.cs
- ColumnHeaderConverter.cs
- XamlToRtfParser.cs
- CodeCatchClause.cs
- BuildManagerHost.cs
- ExpressionEvaluator.cs
- StatusBarPanel.cs
- ConnectionModeReader.cs
- NetCodeGroup.cs
- EffectiveValueEntry.cs
- SerializationFieldInfo.cs
- TypeResolver.cs
- ItemsPanelTemplate.cs
- ListMarkerLine.cs
- DiscoveryServiceExtension.cs
- TargetControlTypeCache.cs
- HwndSourceKeyboardInputSite.cs
- MediaSystem.cs
- XmlSchemaInferenceException.cs
- EdmFunctions.cs
- InternalDuplexBindingElement.cs