Code:
/ FX-1434 / FX-1434 / 1.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
- DataSourceProvider.cs
- NotifyIcon.cs
- HashSet.cs
- SendMailErrorEventArgs.cs
- ToolStripItemDesigner.cs
- CorrelationTokenTypeConvertor.cs
- Debugger.cs
- ContractComponent.cs
- ZipIOFileItemStream.cs
- ZipIOBlockManager.cs
- DiscoveryClientElement.cs
- Touch.cs
- StreamedFramingRequestChannel.cs
- FormsAuthenticationUserCollection.cs
- AncestorChangedEventArgs.cs
- ApplicationServicesHostFactory.cs
- UnauthorizedWebPart.cs
- Native.cs
- FillErrorEventArgs.cs
- ExpressionBuilder.cs
- ThrowHelper.cs
- BamlTreeUpdater.cs
- RepeaterItemCollection.cs
- XmlCountingReader.cs
- Dispatcher.cs
- SapiRecoContext.cs
- XPathScanner.cs
- InternalSafeNativeMethods.cs
- TemplateParser.cs
- TreeWalkHelper.cs
- TransformValueSerializer.cs
- FrameworkElement.cs
- OptimizerPatterns.cs
- SiteMapHierarchicalDataSourceView.cs
- MulticastIPAddressInformationCollection.cs
- EventsTab.cs
- PointCollectionConverter.cs
- PlanCompiler.cs
- DelegateInArgument.cs
- Binding.cs
- ObjRef.cs
- RectConverter.cs
- Mapping.cs
- TextEffectCollection.cs
- WebMessageEncoderFactory.cs
- TogglePatternIdentifiers.cs
- HttpStreamFormatter.cs
- OrderedDictionaryStateHelper.cs
- TriState.cs
- RoleManagerSection.cs
- DispatcherHookEventArgs.cs
- PagePropertiesChangingEventArgs.cs
- OleDbStruct.cs
- SmtpNtlmAuthenticationModule.cs
- Int64Converter.cs
- TextServicesCompartmentContext.cs
- ScriptDescriptor.cs
- BitmapEffectDrawingContent.cs
- StreamingContext.cs
- X509Utils.cs
- Listbox.cs
- MarshalByValueComponent.cs
- DataGridTableCollection.cs
- CngUIPolicy.cs
- HttpRuntime.cs
- SettingsPropertyValueCollection.cs
- Base64Decoder.cs
- XPathItem.cs
- DataGridItemAttachedStorage.cs
- sqlinternaltransaction.cs
- CompletionBookmark.cs
- SplitterPanel.cs
- BevelBitmapEffect.cs
- IndicShape.cs
- Calendar.cs
- XmlSchemaAttribute.cs
- XmlIncludeAttribute.cs
- XmlSchemaSimpleContentExtension.cs
- ConfigurationStrings.cs
- FontEmbeddingManager.cs
- MimeWriter.cs
- TreeNodeBinding.cs
- IntranetCredentialPolicy.cs
- oledbmetadatacollectionnames.cs
- XmlSchemaIdentityConstraint.cs
- DelegateHelpers.cs
- AuthenticatedStream.cs
- IssuedTokenClientBehaviorsElement.cs
- KeyValueConfigurationElement.cs
- SortDescriptionCollection.cs
- XmlTextAttribute.cs
- ComponentCollection.cs
- DBConnection.cs
- Localizer.cs
- CommandField.cs
- FullTextBreakpoint.cs
- CqlBlock.cs
- SerializerProvider.cs
- QilParameter.cs
- OrderedEnumerableRowCollection.cs