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
- ToolStripRendererSwitcher.cs
- OrderedDictionary.cs
- VirtualizedContainerService.cs
- NGCPageContentSerializerAsync.cs
- SelectionRangeConverter.cs
- MetadataItemEmitter.cs
- Item.cs
- DetailsViewPagerRow.cs
- ProjectionNode.cs
- Math.cs
- CodeTypeParameter.cs
- UTF32Encoding.cs
- TextBoxBaseDesigner.cs
- CellConstant.cs
- Parallel.cs
- Descriptor.cs
- DataGridTextBoxColumn.cs
- StrokeIntersection.cs
- DataSourceSelectArguments.cs
- PrintEvent.cs
- EntityDataSourceWizardForm.cs
- SoapExtensionTypeElement.cs
- StringFormat.cs
- SafeCoTaskMem.cs
- TrackingRecord.cs
- ChildDocumentBlock.cs
- DesignerAutoFormatStyle.cs
- DataGridViewColumnDividerDoubleClickEventArgs.cs
- ListBoxItemWrapperAutomationPeer.cs
- Package.cs
- DataIdProcessor.cs
- RemoteX509Token.cs
- DateTimeConverter2.cs
- SymbolDocumentInfo.cs
- TextEndOfLine.cs
- DataStorage.cs
- ElapsedEventArgs.cs
- QuaternionRotation3D.cs
- ScanQueryOperator.cs
- ConstructorBuilder.cs
- DiagnosticsConfiguration.cs
- LiteralControl.cs
- BinaryNode.cs
- BindingGraph.cs
- GrammarBuilderWildcard.cs
- ContentTextAutomationPeer.cs
- PeerCustomResolverSettings.cs
- LinearQuaternionKeyFrame.cs
- ParserExtension.cs
- NativeMethods.cs
- Root.cs
- SQLBinaryStorage.cs
- ProcessModule.cs
- EventBuilder.cs
- ServiceDurableInstanceContextProvider.cs
- CompilationUtil.cs
- CodeObjectCreateExpression.cs
- TypeCacheManager.cs
- WmlValidatorAdapter.cs
- RuntimeCompatibilityAttribute.cs
- KeyMatchBuilder.cs
- WpfGeneratedKnownTypes.cs
- DocumentEventArgs.cs
- ParamArrayAttribute.cs
- ElementHost.cs
- EnvironmentPermission.cs
- FollowerQueueCreator.cs
- OlePropertyStructs.cs
- ProfileGroupSettingsCollection.cs
- AssemblyCollection.cs
- XmlEnumAttribute.cs
- NativeObjectSecurity.cs
- DataSet.cs
- HtmlShimManager.cs
- ResourcePart.cs
- InsufficientMemoryException.cs
- Tool.cs
- MulticastNotSupportedException.cs
- CustomTypeDescriptor.cs
- Vector3DConverter.cs
- TypeConverterHelper.cs
- CopyCodeAction.cs
- TdsRecordBufferSetter.cs
- XamlClipboardData.cs
- SecureConversationDriver.cs
- OperationValidationEventArgs.cs
- SamlSubject.cs
- HTMLTagNameToTypeMapper.cs
- DbParameterHelper.cs
- StringArrayConverter.cs
- ModelPerspective.cs
- ComponentSerializationService.cs
- MemberRelationshipService.cs
- ClientFormsAuthenticationMembershipProvider.cs
- PackWebRequestFactory.cs
- While.cs
- PropertyMetadata.cs
- ClientRuntimeConfig.cs
- EventHandlersStore.cs
- WindowsFormsLinkLabel.cs