Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WinForms / System / WinForms / Design / MaskPropertyEditor.cs / 1 / MaskPropertyEditor.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms.Design { using System; using System.Design; using System.Drawing.Design; using System.Collections; using System.ComponentModel; using System.ComponentModel.Design; using System.Windows.Forms; using System.Diagnostics; ////// Design time editing class for the Mask property of the MaskedTextBox control. /// internal class MaskPropertyEditor : UITypeEditor { ////// Constructor. /// public MaskPropertyEditor() { } ////// Gets the mask property value fromt the MaskDesignerDialog. /// The IUIService is used to show the mask designer dialog within VS so it doesn't get blocked if focus /// is moved to anoter app. /// internal static string EditMask(ITypeDiscoveryService discoverySvc, IUIService uiSvc, MaskedTextBox instance, IHelpService helpService) { Debug.Assert( instance != null, "Null masked text box." ); string mask = null; MaskDesignerDialog dlg = new MaskDesignerDialog(instance, helpService); try { dlg.DiscoverMaskDescriptors( discoverySvc ); // fine if service is null. // Show dialog from VS. // Debug.Assert( uiSvc != null, "Expected IUIService, defaulting to an intrusive way to show the dialog..." ); DialogResult dlgResult = uiSvc != null ? uiSvc.ShowDialog( dlg ) : dlg.ShowDialog(); if ( dlgResult == DialogResult.OK) { mask = dlg.Mask; // ValidatingType is not browsable so we don't need to set the property through the designer. if (dlg.ValidatingType != instance.ValidatingType) { instance.ValidatingType = dlg.ValidatingType; } } } finally { dlg.Dispose(); } // Will return null if dlgResult != OK. return mask; } ////// Edits the Mask property of the MaskedTextBox control from the PropertyGrid. /// // This should be okay since System.Design only runs in FullTrust. // SECREVIEW: Isn't that true [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase")] public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, IServiceProvider provider, object value) { if (context != null && provider != null) { ITypeDiscoveryService discoverySvc = (ITypeDiscoveryService) provider.GetService(typeof(ITypeDiscoveryService)); // fine if service is not found. IUIService uiSvc = (IUIService) provider.GetService(typeof(IUIService)); IHelpService helpService = (IHelpService)provider.GetService(typeof(IHelpService)); string mask = MaskPropertyEditor.EditMask(discoverySvc, uiSvc, context.Instance as MaskedTextBox, helpService); if( mask != null ) { return mask; } } return value; } ////// Painting a representation of the Mask value is not supported. /// // This should be okay since System.Design only runs in FullTrust. // SECREVIEW: Isn't that true [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase")] public override bool GetPaintValueSupported(System.ComponentModel.ITypeDescriptorContext context) { return false; } ////// Gets the edit style of the type editor. /// // This should be okay since System.Design only runs in FullTrust. // SECREVIEW: Isn't that true [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase")] public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context) { return UITypeEditorEditStyle.Modal; } } } // 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
- TextTreePropertyUndoUnit.cs
- PersonalizationStateInfo.cs
- SmtpSection.cs
- HybridWebProxyFinder.cs
- SmtpLoginAuthenticationModule.cs
- ServiceBusyException.cs
- OdbcConnectionFactory.cs
- ArrayWithOffset.cs
- WebFaultClientMessageInspector.cs
- AssemblyAttributesGoHere.cs
- WhitespaceRuleLookup.cs
- WithStatement.cs
- PipelineComponent.cs
- Substitution.cs
- MouseActionConverter.cs
- InputGestureCollection.cs
- DbMetaDataCollectionNames.cs
- Decimal.cs
- MethodRental.cs
- ParseChildrenAsPropertiesAttribute.cs
- GridLength.cs
- XNameConverter.cs
- ListSourceHelper.cs
- Closure.cs
- CompiledRegexRunner.cs
- InteropAutomationProvider.cs
- ListViewInsertionMark.cs
- AtomEntry.cs
- VirtualPath.cs
- dbdatarecord.cs
- PageTheme.cs
- XmlUtil.cs
- Route.cs
- _FtpControlStream.cs
- validation.cs
- RegularExpressionValidator.cs
- ServicesUtilities.cs
- WebPartConnectionCollection.cs
- SupportedAddressingMode.cs
- DynamicPropertyHolder.cs
- CheckBoxStandardAdapter.cs
- BinaryQueryOperator.cs
- LinearGradientBrush.cs
- PropertyNames.cs
- BulletDecorator.cs
- DelegateSerializationHolder.cs
- MD5CryptoServiceProvider.cs
- CollectionDataContract.cs
- Win32.cs
- GrammarBuilderRuleRef.cs
- MLangCodePageEncoding.cs
- ImpersonationContext.cs
- FixedStringLookup.cs
- ListViewItem.cs
- TargetControlTypeAttribute.cs
- Propagator.JoinPropagator.cs
- QueryableDataSourceEditData.cs
- TargetConverter.cs
- XpsFontSerializationService.cs
- DataGridColumnCollection.cs
- CodeDelegateInvokeExpression.cs
- ToolStripSettings.cs
- ScrollEvent.cs
- DocumentPageViewAutomationPeer.cs
- XmlQueryRuntime.cs
- SecurityContextSecurityTokenAuthenticator.cs
- FontDialog.cs
- sqlpipe.cs
- EnglishPluralizationService.cs
- InvalidCommandTreeException.cs
- MaterializeFromAtom.cs
- ReplacementText.cs
- BindingOperations.cs
- FixUp.cs
- XmlComment.cs
- SortKey.cs
- UpdateCommand.cs
- PersistChildrenAttribute.cs
- ClientRolePrincipal.cs
- CommandCollectionEditor.cs
- DataObjectPastingEventArgs.cs
- SoapProtocolReflector.cs
- UnsafeNativeMethods.cs
- GlyphsSerializer.cs
- PolicyImporterElementCollection.cs
- InputBuffer.cs
- CodeTypeConstructor.cs
- CodeDomLoader.cs
- odbcmetadatacollectionnames.cs
- SymbolTable.cs
- ExpandSegment.cs
- Convert.cs
- RowsCopiedEventArgs.cs
- CustomSignedXml.cs
- EventEntry.cs
- TableParagraph.cs
- UIElement3D.cs
- SecurityHeaderElementInferenceEngine.cs
- XPathParser.cs
- InheritanceContextChangedEventManager.cs