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
- TableItemPattern.cs
- CodePageUtils.cs
- DbMetaDataColumnNames.cs
- HyperLink.cs
- SrgsSubset.cs
- CollectionExtensions.cs
- CannotUnloadAppDomainException.cs
- ExpandedWrapper.cs
- DataBindingHandlerAttribute.cs
- TableColumnCollectionInternal.cs
- DataGridViewRowsRemovedEventArgs.cs
- Cursor.cs
- ConstructorArgumentAttribute.cs
- securitycriticaldataformultiplegetandset.cs
- OperationParameterInfoCollection.cs
- BaseEntityWrapper.cs
- ScrollEventArgs.cs
- MsmqIntegrationBindingElement.cs
- CodeConditionStatement.cs
- WinInet.cs
- SrgsElementFactoryCompiler.cs
- QilInvoke.cs
- coordinator.cs
- BrowsableAttribute.cs
- Rectangle.cs
- BuildManager.cs
- SeparatorAutomationPeer.cs
- TextBoxLine.cs
- GlyphCollection.cs
- SafeEventHandle.cs
- ImageBrush.cs
- AxParameterData.cs
- PopupControlService.cs
- CroppedBitmap.cs
- RequestCachePolicyConverter.cs
- TemplateDefinition.cs
- BinaryFormatterSinks.cs
- ConfigXmlSignificantWhitespace.cs
- GridViewAutomationPeer.cs
- FilteredXmlReader.cs
- SQLSingleStorage.cs
- UpDownBase.cs
- HttpCapabilitiesEvaluator.cs
- dsa.cs
- XmlUTF8TextReader.cs
- XmlKeywords.cs
- QueryAccessibilityHelpEvent.cs
- RegexCompiler.cs
- NativeRecognizer.cs
- UnknownBitmapEncoder.cs
- ConversionHelper.cs
- ScrollEventArgs.cs
- Win32PrintDialog.cs
- DocumentCollection.cs
- FaultContractInfo.cs
- FixedBufferAttribute.cs
- ResXDataNode.cs
- GridViewSelectEventArgs.cs
- ListManagerBindingsCollection.cs
- WebAdminConfigurationHelper.cs
- RecordManager.cs
- WpfXamlMember.cs
- Psha1DerivedKeyGenerator.cs
- LockCookie.cs
- PageRanges.cs
- LocalClientSecuritySettings.cs
- DataGridViewButtonColumn.cs
- ProfileSection.cs
- ThicknessKeyFrameCollection.cs
- IERequestCache.cs
- StreamingContext.cs
- FileInfo.cs
- ProjectionCamera.cs
- BrowserCapabilitiesCodeGenerator.cs
- EdmProperty.cs
- HtmlInputHidden.cs
- WebPartHeaderCloseVerb.cs
- HttpRequestCacheValidator.cs
- ResourceSet.cs
- ClonableStack.cs
- HostVisual.cs
- CodeCatchClause.cs
- WeakHashtable.cs
- GACMembershipCondition.cs
- RemoteWebConfigurationHostServer.cs
- AdapterDictionary.cs
- TreeNodeBinding.cs
- ToolboxItemWrapper.cs
- AssociationTypeEmitter.cs
- ConfigXmlText.cs
- GatewayIPAddressInformationCollection.cs
- Point3DCollectionConverter.cs
- ComplexPropertyEntry.cs
- CaseInsensitiveOrdinalStringComparer.cs
- RoutingEndpointTrait.cs
- CorrelationScope.cs
- PerfService.cs
- wgx_exports.cs
- OperationInfo.cs
- AnnouncementEventArgs.cs