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
- TagMapCollection.cs
- RunWorkerCompletedEventArgs.cs
- HtmlTernaryTree.cs
- CuspData.cs
- ResourceKey.cs
- Config.cs
- UIElement.cs
- ProcessInputEventArgs.cs
- UnsafeNativeMethods.cs
- Attributes.cs
- EasingKeyFrames.cs
- Frame.cs
- MenuTracker.cs
- DefaultProxySection.cs
- ResolveCriteriaApril2005.cs
- WsdlBuildProvider.cs
- WindowsUserNameSecurityTokenAuthenticator.cs
- DataReaderContainer.cs
- TagMapInfo.cs
- GPPOINT.cs
- CompilerGeneratedAttribute.cs
- DataControlPagerLinkButton.cs
- ProtectedUri.cs
- WebPartConnectionsEventArgs.cs
- SoapAttributes.cs
- URLString.cs
- PageThemeParser.cs
- ScrollEventArgs.cs
- RepeatBehaviorConverter.cs
- DebugInfo.cs
- RelatedEnd.cs
- _ListenerRequestStream.cs
- PageAsyncTask.cs
- SystemUdpStatistics.cs
- StaticResourceExtension.cs
- PreviewControlDesigner.cs
- CounterSampleCalculator.cs
- WebPartRestoreVerb.cs
- NullRuntimeConfig.cs
- ValueSerializerAttribute.cs
- ConfigurationSectionHelper.cs
- ProtectedProviderSettings.cs
- sitestring.cs
- SimpleRecyclingCache.cs
- DbSourceCommand.cs
- WaitHandleCannotBeOpenedException.cs
- GreenMethods.cs
- ManagedIStream.cs
- TextRenderer.cs
- UndirectedGraph.cs
- FieldReference.cs
- DynamicDocumentPaginator.cs
- FontInfo.cs
- XLinq.cs
- ClonableStack.cs
- BoundColumn.cs
- PropagatorResult.cs
- SchemaElementDecl.cs
- GradientStop.cs
- BitmapCodecInfo.cs
- InvalidCastException.cs
- FileVersionInfo.cs
- CompilationSection.cs
- SplitterCancelEvent.cs
- DataGridViewCellValidatingEventArgs.cs
- XmlAttributes.cs
- SplineKeyFrames.cs
- BehaviorService.cs
- DiagnosticTraceRecords.cs
- CheckedListBox.cs
- DecoderNLS.cs
- DataGridViewRowEventArgs.cs
- formatter.cs
- JournalEntry.cs
- RegexMatchCollection.cs
- WindowsGraphicsCacheManager.cs
- CustomLineCap.cs
- SecurityStandardsManager.cs
- SiteMapPath.cs
- IsolatedStorageSecurityState.cs
- SimpleWorkerRequest.cs
- GridItemProviderWrapper.cs
- ValidationRule.cs
- FontNameEditor.cs
- DoubleLink.cs
- QilScopedVisitor.cs
- SafeFindHandle.cs
- RuntimeConfig.cs
- ImpersonateTokenRef.cs
- FieldAccessException.cs
- NextPreviousPagerField.cs
- MessageAction.cs
- OleDbConnectionInternal.cs
- HwndProxyElementProvider.cs
- Range.cs
- ToolStripSplitButton.cs
- GenerateScriptTypeAttribute.cs
- AssemblyHash.cs
- NegotiationTokenAuthenticator.cs
- XmlSchemaGroup.cs