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
- Command.cs
- InputMethod.cs
- AmbientProperties.cs
- PeerToPeerException.cs
- NullReferenceException.cs
- Config.cs
- ComponentFactoryHelpers.cs
- bidPrivateBase.cs
- WindowsClaimSet.cs
- SizeAnimationBase.cs
- WriteLine.cs
- NetSectionGroup.cs
- TableRowGroup.cs
- SchemaNotation.cs
- StylusPointCollection.cs
- InputReport.cs
- CollectionDataContractAttribute.cs
- XamlStyleSerializer.cs
- DispatcherOperation.cs
- SystemEvents.cs
- DataServiceContext.cs
- DependentTransaction.cs
- MULTI_QI.cs
- AccessibleObject.cs
- FloaterParaClient.cs
- DataGridColumnHeadersPresenterAutomationPeer.cs
- OutOfProcStateClientManager.cs
- Normalization.cs
- DbUpdateCommandTree.cs
- WrappedIUnknown.cs
- ColorIndependentAnimationStorage.cs
- WebPartTransformer.cs
- BindableTemplateBuilder.cs
- PipelineModuleStepContainer.cs
- IdnElement.cs
- PagePropertiesChangingEventArgs.cs
- ScrollProperties.cs
- KeyedCollection.cs
- EventProviderWriter.cs
- FileDialogPermission.cs
- PropertyValidationContext.cs
- TabOrder.cs
- NumberFormatInfo.cs
- BuildProviderCollection.cs
- EnumType.cs
- BaseDataListComponentEditor.cs
- ModuleElement.cs
- OutputCache.cs
- FlowDocumentFormatter.cs
- LiteralText.cs
- XmlSchemaAnnotated.cs
- XmlSchemaAnyAttribute.cs
- DbProviderSpecificTypePropertyAttribute.cs
- TypeForwardedToAttribute.cs
- WaitHandle.cs
- PersonalizationAdministration.cs
- TextParagraphCache.cs
- RepeatBehaviorConverter.cs
- ITreeGenerator.cs
- CultureSpecificCharacterBufferRange.cs
- PageThemeBuildProvider.cs
- WmlPageAdapter.cs
- ControlPropertyNameConverter.cs
- DistinctQueryOperator.cs
- ExpressionCopier.cs
- DetailsViewModeEventArgs.cs
- StateChangeEvent.cs
- DbParameterCollection.cs
- DataListItem.cs
- RegexBoyerMoore.cs
- M3DUtil.cs
- PageClientProxyGenerator.cs
- DataObjectEventArgs.cs
- CodeStatementCollection.cs
- AxisAngleRotation3D.cs
- EventWaitHandleSecurity.cs
- Mutex.cs
- WebFaultClientMessageInspector.cs
- ItemCollection.cs
- CodeTypeReferenceCollection.cs
- DataSourceDescriptorCollection.cs
- FtpRequestCacheValidator.cs
- WindowsRichEditRange.cs
- XmlEncoding.cs
- SizeKeyFrameCollection.cs
- CustomTypeDescriptor.cs
- SmtpSection.cs
- DiscoveryDefaults.cs
- ConfigXmlCDataSection.cs
- ConfigurationSectionGroupCollection.cs
- SByte.cs
- UriSection.cs
- PropertyDescriptors.cs
- DataGridRowEventArgs.cs
- UITypeEditor.cs
- Encoder.cs
- TextPointer.cs
- TextBoxRenderer.cs
- TableColumnCollectionInternal.cs
- TimersDescriptionAttribute.cs