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
- MetadataArtifactLoaderCompositeFile.cs
- SafeCryptoHandles.cs
- TableLayoutColumnStyleCollection.cs
- SimpleRecyclingCache.cs
- InputManager.cs
- _SslState.cs
- CodeDomConfigurationHandler.cs
- SBCSCodePageEncoding.cs
- Animatable.cs
- PackageRelationshipCollection.cs
- TypeConverterBase.cs
- HatchBrush.cs
- RegexGroup.cs
- FormViewRow.cs
- DateTimeFormat.cs
- GridProviderWrapper.cs
- HttpSocketManager.cs
- CqlWriter.cs
- StoreItemCollection.cs
- DashStyle.cs
- HtmlTableRow.cs
- AncillaryOps.cs
- StaticContext.cs
- MissingManifestResourceException.cs
- PageBreakRecord.cs
- MimeBasePart.cs
- ContentControl.cs
- BindingGraph.cs
- TextTreeObjectNode.cs
- DropShadowBitmapEffect.cs
- Deserializer.cs
- InternalConfigRoot.cs
- InternalUserCancelledException.cs
- Method.cs
- ExpandSegmentCollection.cs
- Activator.cs
- VersionConverter.cs
- InvalidCommandTreeException.cs
- HyperLink.cs
- CustomErrorsSection.cs
- TimeManager.cs
- DiffuseMaterial.cs
- XmlSchemaAny.cs
- DSACryptoServiceProvider.cs
- NameValueConfigurationElement.cs
- MenuItemCollection.cs
- WCFModelStrings.Designer.cs
- DatePickerAutomationPeer.cs
- CompareValidator.cs
- TextEditorContextMenu.cs
- ValidationError.cs
- PolicyStatement.cs
- UnitControl.cs
- GeometryCollection.cs
- HttpRequest.cs
- Win32.cs
- QueueProcessor.cs
- PackagePartCollection.cs
- TrackBar.cs
- Annotation.cs
- TextRangeBase.cs
- HelpProvider.cs
- AsmxEndpointPickerExtension.cs
- AlphaSortedEnumConverter.cs
- SerializationAttributes.cs
- ErrorInfoXmlDocument.cs
- NonceToken.cs
- EntityClassGenerator.cs
- PerfCounterSection.cs
- WebMessageFormatHelper.cs
- CredentialManagerDialog.cs
- Convert.cs
- WebHeaderCollection.cs
- BaseWebProxyFinder.cs
- FrameworkContentElement.cs
- DataBoundControl.cs
- DrawingServices.cs
- EventLogPermissionHolder.cs
- cookieexception.cs
- InputLanguageSource.cs
- BinaryObjectInfo.cs
- CacheOutputQuery.cs
- BitmapEffectInput.cs
- InternalEnumValidatorAttribute.cs
- XamlReaderHelper.cs
- FixedPosition.cs
- Fonts.cs
- BooleanExpr.cs
- ManualResetEvent.cs
- DataQuery.cs
- ControllableStoryboardAction.cs
- WindowsUpDown.cs
- AnimationException.cs
- oledbconnectionstring.cs
- NetworkInformationPermission.cs
- WindowsStartMenu.cs
- DispatcherExceptionFilterEventArgs.cs
- CommittableTransaction.cs
- ObservableDictionary.cs
- DataGridViewRowPrePaintEventArgs.cs