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
- FormsAuthenticationConfiguration.cs
- FaultBookmark.cs
- WebPartDesigner.cs
- OdbcPermission.cs
- ControlAdapter.cs
- TraceContext.cs
- RegexGroupCollection.cs
- SqlMethodTransformer.cs
- WindowsTitleBar.cs
- ColumnWidthChangedEvent.cs
- Rfc2898DeriveBytes.cs
- DES.cs
- WindowsListViewItemCheckBox.cs
- WithStatement.cs
- __Filters.cs
- FileLogRecordHeader.cs
- CollectionChangedEventManager.cs
- DbParameterCollection.cs
- SqlNotificationEventArgs.cs
- Expander.cs
- BaseDataBoundControlDesigner.cs
- Symbol.cs
- TextBoxAutoCompleteSourceConverter.cs
- XmlDownloadManager.cs
- FormsAuthenticationConfiguration.cs
- DictionaryBase.cs
- DeviceContext.cs
- XmlDocumentFieldSchema.cs
- ButtonBaseAdapter.cs
- PartialCachingAttribute.cs
- TableDetailsRow.cs
- PinnedBufferMemoryStream.cs
- JpegBitmapEncoder.cs
- HttpHandlerAction.cs
- OutputCacheProfile.cs
- EntityDataSourceDesignerHelper.cs
- COM2ExtendedTypeConverter.cs
- AttributeTable.cs
- CodeSnippetStatement.cs
- ToolBarOverflowPanel.cs
- ClaimTypeElementCollection.cs
- SqlAggregateChecker.cs
- DataSourceDesigner.cs
- NativeMethods.cs
- NavigationFailedEventArgs.cs
- HeaderedContentControl.cs
- ExceptionHelpers.cs
- TypefaceCollection.cs
- SqlInternalConnectionSmi.cs
- ContentPlaceHolderDesigner.cs
- SqlDataSourceFilteringEventArgs.cs
- PublisherIdentityPermission.cs
- WebServiceParameterData.cs
- RunInstallerAttribute.cs
- SafeArchiveContext.cs
- ConnectorMovedEventArgs.cs
- Serializer.cs
- XmlIlGenerator.cs
- ToolStripLocationCancelEventArgs.cs
- InputReport.cs
- XmlDocumentType.cs
- LogLogRecordHeader.cs
- GPStream.cs
- SerializationFieldInfo.cs
- WorkerRequest.cs
- BrowserPolicyValidator.cs
- TypeListConverter.cs
- AsyncCompletedEventArgs.cs
- DynamicActionMessageFilter.cs
- IsolatedStorage.cs
- ClientConfigurationHost.cs
- SettingsAttributeDictionary.cs
- IntSecurity.cs
- DeviceContext2.cs
- DynamicRendererThreadManager.cs
- DbMetaDataCollectionNames.cs
- HttpPostedFile.cs
- SqlXml.cs
- ExpressionBuilder.cs
- WebPartUtil.cs
- MediaSystem.cs
- NativeObjectSecurity.cs
- FileRecordSequence.cs
- SelectedDatesCollection.cs
- OleDbError.cs
- CodeParameterDeclarationExpression.cs
- ToolStripItemDesigner.cs
- SqlCommandSet.cs
- ThreadStartException.cs
- UrlMappingCollection.cs
- WebPartEditVerb.cs
- SID.cs
- BevelBitmapEffect.cs
- BindingsCollection.cs
- PeerApplication.cs
- IgnoreDataMemberAttribute.cs
- TableSectionStyle.cs
- DataGridCell.cs
- VariableQuery.cs
- FixedNode.cs