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
- TaskFileService.cs
- TcpPortSharing.cs
- CalendarAutoFormatDialog.cs
- Variant.cs
- StyleXamlParser.cs
- WebPartVerbsEventArgs.cs
- DrawingBrush.cs
- SchemaObjectWriter.cs
- TreeViewImageIndexConverter.cs
- JumpItem.cs
- Normalization.cs
- safemediahandle.cs
- AlphaSortedEnumConverter.cs
- GroupStyle.cs
- versioninfo.cs
- QuaternionKeyFrameCollection.cs
- BindingsCollection.cs
- DataTemplateKey.cs
- SqlCacheDependencySection.cs
- EntityContainerEmitter.cs
- TailPinnedEventArgs.cs
- PersistChildrenAttribute.cs
- WinEventQueueItem.cs
- ApplicationSettingsBase.cs
- Soap.cs
- HostedElements.cs
- ButtonBaseDesigner.cs
- DbException.cs
- BamlTreeNode.cs
- EditingCommands.cs
- SizeConverter.cs
- CodeDirectiveCollection.cs
- FrameSecurityDescriptor.cs
- CollectionMarkupSerializer.cs
- TableColumn.cs
- PropertyRecord.cs
- MissingFieldException.cs
- PositiveTimeSpanValidator.cs
- GregorianCalendar.cs
- SqlExpressionNullability.cs
- EDesignUtil.cs
- DragAssistanceManager.cs
- XsltConvert.cs
- ValueOfAction.cs
- SHA256Managed.cs
- XmlNamespaceMapping.cs
- FixedPosition.cs
- SamlDelegatingWriter.cs
- ComponentCodeDomSerializer.cs
- ListParagraph.cs
- StringFreezingAttribute.cs
- Comparer.cs
- VariableQuery.cs
- XmlAttribute.cs
- ColorTransform.cs
- EndpointConfigContainer.cs
- LocalizationParserHooks.cs
- VirtualDirectoryMappingCollection.cs
- TypeListConverter.cs
- OraclePermission.cs
- _Rfc2616CacheValidators.cs
- ConnectionStringsSection.cs
- Compress.cs
- DotAtomReader.cs
- SplitterCancelEvent.cs
- TreeNodeStyle.cs
- DirtyTextRange.cs
- CodeConditionStatement.cs
- ObjectDataSource.cs
- SchemaElementDecl.cs
- FontFamilyValueSerializer.cs
- ServiceBuildProvider.cs
- SqlFlattener.cs
- ListArgumentProvider.cs
- WebPartMenu.cs
- SqlPersonalizationProvider.cs
- MetadataUtil.cs
- TypeInitializationException.cs
- SpotLight.cs
- DataControlLinkButton.cs
- StringPropertyBuilder.cs
- TemplateBindingExpression.cs
- DashStyle.cs
- GrammarBuilderWildcard.cs
- Zone.cs
- SystemResourceKey.cs
- WebPartDisplayModeCollection.cs
- EntityProviderServices.cs
- EventWaitHandle.cs
- ListViewCancelEventArgs.cs
- EmbeddedObject.cs
- UITypeEditor.cs
- securitycriticaldataformultiplegetandset.cs
- FixedSOMTable.cs
- ContourSegment.cs
- DateTime.cs
- ZipFileInfoCollection.cs
- PersonalizationProviderHelper.cs
- SoapElementAttribute.cs
- SettingsSavedEventArgs.cs