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
- BlobPersonalizationState.cs
- ExpressionEditorAttribute.cs
- DropDownButton.cs
- Ref.cs
- PrintDialog.cs
- WebZone.cs
- BoolExpressionVisitors.cs
- ArglessEventHandlerProxy.cs
- StateBag.cs
- CounterSample.cs
- SoapInteropTypes.cs
- SystemEvents.cs
- GetLedgerRequest.cs
- AlignmentYValidation.cs
- SQLByteStorage.cs
- InputScopeAttribute.cs
- DocComment.cs
- HttpStaticObjectsCollectionBase.cs
- RowToFieldTransformer.cs
- EmbossBitmapEffect.cs
- MessageBox.cs
- ObjectDataSourceView.cs
- DBConnectionString.cs
- ManualWorkflowSchedulerService.cs
- DictionaryManager.cs
- ListItemCollection.cs
- TypeInfo.cs
- ConnectorEditor.cs
- BuildResultCache.cs
- CodeBinaryOperatorExpression.cs
- PolygonHotSpot.cs
- FastEncoderWindow.cs
- StoreItemCollection.cs
- OracleTransaction.cs
- PublishLicense.cs
- PersonalizableTypeEntry.cs
- RouteCollection.cs
- HttpInputStream.cs
- StructuralCache.cs
- EncodingStreamWrapper.cs
- DecoderBestFitFallback.cs
- HideDisabledControlAdapter.cs
- MbpInfo.cs
- FtpWebResponse.cs
- CodeConditionStatement.cs
- PrintingPermissionAttribute.cs
- PlainXmlWriter.cs
- SHA512.cs
- AssemblyAttributesGoHere.cs
- BufferedStream.cs
- AnnotationResourceChangedEventArgs.cs
- HostedHttpContext.cs
- NamespaceExpr.cs
- RequiredFieldValidator.cs
- ServerIdentity.cs
- CapabilitiesUse.cs
- ToolStripStatusLabel.cs
- TraceSwitch.cs
- SurrogateEncoder.cs
- XamlTreeBuilderBamlRecordWriter.cs
- SqlUserDefinedAggregateAttribute.cs
- DefaultProxySection.cs
- UnaryQueryOperator.cs
- HyperLinkColumn.cs
- FixedSOMLineCollection.cs
- ClassHandlersStore.cs
- StringPropertyBuilder.cs
- GrabHandleGlyph.cs
- AttachedPropertiesService.cs
- MembershipPasswordException.cs
- TraceSwitch.cs
- AxHost.cs
- SqlFacetAttribute.cs
- TimeSpanValidatorAttribute.cs
- SiblingIterators.cs
- PostBackTrigger.cs
- MultiBinding.cs
- BindingsCollection.cs
- SqlSupersetValidator.cs
- BaseCAMarshaler.cs
- Evidence.cs
- ItemContainerGenerator.cs
- RepeaterItem.cs
- CancellationHandler.cs
- GridViewSelectEventArgs.cs
- MaskedTextProvider.cs
- shaper.cs
- KeysConverter.cs
- Vector.cs
- WmpBitmapEncoder.cs
- COAUTHIDENTITY.cs
- SourceFilter.cs
- SkewTransform.cs
- XmlAnyAttributeAttribute.cs
- OdbcParameter.cs
- CompModSwitches.cs
- Preprocessor.cs
- EntryIndex.cs
- DeviceContext.cs
- MultilineStringEditor.cs