Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WinForms / System / WinForms / Design / ComboBoxDesigner.cs / 1 / ComboBoxDesigner.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* */ [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="System.Windows.Forms.Design.ComboBoxDesigner..ctor()")] namespace System.Windows.Forms.Design { using System; using System.Collections; using System.ComponentModel; using System.ComponentModel.Design; using System.Windows.Forms.Design.Behavior; ////// /// internal class ComboBoxDesigner : ControlDesigner { private EventHandler propChanged = null; // Delegate used to dirty the selectionUIItem when needed. private DesignerActionListCollection _actionLists; ////// Provides a designer that can design components /// that extend ComboBox. ////// /// Adds a baseline SnapLine to the list of SnapLines related /// to this control. /// public override IList SnapLines { get { ArrayList snapLines = base.SnapLines as ArrayList; //a single text-baseline for the label (and linklabel) control int baseline = DesignerUtils.GetTextBaseline(Control, System.Drawing.ContentAlignment.TopLeft); baseline += 3; snapLines.Add(new SnapLine(SnapLineType.Baseline, baseline, SnapLinePriority.Medium)); return snapLines; } } ////// /// Disposes of this object. /// protected override void Dispose(bool disposing) { if (disposing) { // Hook up the property change notification so that we can dirty the SelectionUIItem when needed. if (propChanged != null) { ((ComboBox)Control).StyleChanged -= propChanged; } } base.Dispose(disposing); } ////// /// Called by the host when we're first initialized. /// public override void Initialize(IComponent component) { base.Initialize(component); AutoResizeHandles = true; // Hook up the property change notification so that we can dirty the SelectionUIItem when needed. propChanged = new EventHandler(this.OnControlPropertyChanged); ((ComboBox)Control).StyleChanged += propChanged; } ////// /// We override this so we can clear the text field set by controldesigner. /// public override void InitializeNewComponent(IDictionary defaultValues) { base.InitializeNewComponent(defaultValues); // in Whidbey, formattingEnabled is TRUE ((ComboBox) this.Component).FormattingEnabled = true; PropertyDescriptor textProp = TypeDescriptor.GetProperties(Component)["Text"]; if (textProp != null && textProp.PropertyType == typeof(string) && !textProp.IsReadOnly && textProp.IsBrowsable) { textProp.SetValue(Component, ""); } } ////// /// For controls, we sync their property changed event so our component can track their location. /// private void OnControlPropertyChanged(object sender, EventArgs e) { if (BehaviorService != null) { BehaviorService.SyncSelection(); } } ////// /// Retrieves a set of rules concerning the movement capabilities of a component. /// This should be one or more flags from the SelectionRules class. If no designer /// provides rules for a component, the component will not get any UI services. /// public override SelectionRules SelectionRules { get { SelectionRules rules = base.SelectionRules; object component = Component; PropertyDescriptor propStyle = TypeDescriptor.GetProperties(component)["DropDownStyle"]; if (propStyle != null) { ComboBoxStyle style = (ComboBoxStyle)propStyle.GetValue(component); // Height is not user-changable for these styles if (style == ComboBoxStyle.DropDown || style == ComboBoxStyle.DropDownList) rules &= ~(SelectionRules.TopSizeable | SelectionRules.BottomSizeable); } return rules; } } public override DesignerActionListCollection ActionLists { get { if (_actionLists == null) { _actionLists = new DesignerActionListCollection(); _actionLists.Add(new ListControlBoundActionList(this)); } return _actionLists; } } } } // 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
- BridgeDataReader.cs
- IImplicitResourceProvider.cs
- SqlDependencyListener.cs
- ToolboxItem.cs
- ListBindableAttribute.cs
- XmlAttributeCollection.cs
- WebUtil.cs
- AttributeSetAction.cs
- ProxyHwnd.cs
- ToolStripItemEventArgs.cs
- DictionaryCustomTypeDescriptor.cs
- GeometryCombineModeValidation.cs
- BitmapMetadata.cs
- SpecialFolderEnumConverter.cs
- regiisutil.cs
- ClientSettingsProvider.cs
- Nullable.cs
- AddDataControlFieldDialog.cs
- GeneralTransform2DTo3D.cs
- GraphicsContext.cs
- MappingMetadataHelper.cs
- GridViewRow.cs
- CachedPathData.cs
- XmlDataProvider.cs
- WebBrowserSiteBase.cs
- unitconverter.cs
- CancelEventArgs.cs
- QilDataSource.cs
- XmlSchemaSimpleContent.cs
- DataReceivedEventArgs.cs
- RuntimeIdentifierPropertyAttribute.cs
- ChangeTracker.cs
- XmlSchemaSimpleContentRestriction.cs
- GlobalizationSection.cs
- MethodBuilderInstantiation.cs
- XamlBuildProvider.cs
- HyperLink.cs
- TableDetailsRow.cs
- AspCompat.cs
- DetailsViewInsertedEventArgs.cs
- XmlWriterSettings.cs
- MenuAdapter.cs
- StrongNamePublicKeyBlob.cs
- RSAPKCS1SignatureFormatter.cs
- ExpressionBindingCollection.cs
- TemplateGroupCollection.cs
- WebException.cs
- DataGridColumnHeaderItemAutomationPeer.cs
- VScrollProperties.cs
- LayeredChannelFactory.cs
- EmptyStringExpandableObjectConverter.cs
- StringExpressionSet.cs
- CanExecuteRoutedEventArgs.cs
- PresentationTraceSources.cs
- CodeMemberProperty.cs
- RuleConditionDialog.Designer.cs
- SqlAggregateChecker.cs
- GeneralTransform3DGroup.cs
- SerializationEventsCache.cs
- RowVisual.cs
- XmlComment.cs
- ContextBase.cs
- UserControlDocumentDesigner.cs
- XmlNodeChangedEventManager.cs
- XmlExtensionFunction.cs
- WeakKeyDictionary.cs
- MarkupCompiler.cs
- SelectedDatesCollection.cs
- Int32RectValueSerializer.cs
- MessageEnumerator.cs
- StrokeSerializer.cs
- StatusBarAutomationPeer.cs
- SortFieldComparer.cs
- ToolStripDropDownClosingEventArgs.cs
- UnmanagedHandle.cs
- HttpValueCollection.cs
- embossbitmapeffect.cs
- PropertyMetadata.cs
- ScrollItemPattern.cs
- IPHostEntry.cs
- XmlDictionaryWriter.cs
- SR.Designer.cs
- AspCompat.cs
- DefaultParameterValueAttribute.cs
- ConstraintManager.cs
- RectValueSerializer.cs
- CompiledELinqQueryState.cs
- TypedTableBaseExtensions.cs
- indexingfiltermarshaler.cs
- ExpressionBindingCollection.cs
- SafeNativeMethodsCLR.cs
- StaticTextPointer.cs
- PointF.cs
- OleDbError.cs
- DataGridViewRowStateChangedEventArgs.cs
- SqlDataRecord.cs
- AdjustableArrowCap.cs
- FileDialog.cs
- InvalidPropValue.cs
- SQLInt64Storage.cs