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
- CounterSample.cs
- ListSortDescriptionCollection.cs
- DataGridViewColumn.cs
- ReadOnlyDictionary.cs
- PageTheme.cs
- HandleCollector.cs
- ProfessionalColorTable.cs
- TextDecorations.cs
- ListSortDescriptionCollection.cs
- RecordsAffectedEventArgs.cs
- ExceptionRoutedEventArgs.cs
- ProvidePropertyAttribute.cs
- DesignerPainter.cs
- ClaimTypeRequirement.cs
- Margins.cs
- DataGridViewTextBoxCell.cs
- NetStream.cs
- CompilerParameters.cs
- VectorAnimationBase.cs
- InternalMappingException.cs
- Shape.cs
- WebPartDisplayModeCollection.cs
- EncryptedKey.cs
- SchemaInfo.cs
- ErrorFormatterPage.cs
- DebugInfoExpression.cs
- ClientConfigurationSystem.cs
- FieldBuilder.cs
- RoutedPropertyChangedEventArgs.cs
- SoundPlayer.cs
- AdapterDictionary.cs
- RowUpdatingEventArgs.cs
- tibetanshape.cs
- SrgsElementFactory.cs
- TargetConverter.cs
- _FtpDataStream.cs
- DataListItemEventArgs.cs
- TextElementEnumerator.cs
- HostingEnvironmentException.cs
- ISFClipboardData.cs
- SimpleWorkerRequest.cs
- HybridObjectCache.cs
- GroupByExpressionRewriter.cs
- XMLDiffLoader.cs
- IOException.cs
- ISCIIEncoding.cs
- SpecialFolderEnumConverter.cs
- GuidConverter.cs
- xmlfixedPageInfo.cs
- TextSelectionProcessor.cs
- CompositionAdorner.cs
- HtmlForm.cs
- FontStretches.cs
- DeobfuscatingStream.cs
- CustomBindingElementCollection.cs
- Transactions.cs
- ActiveDocumentEvent.cs
- PageParserFilter.cs
- Timeline.cs
- AnnotationMap.cs
- PageWrapper.cs
- FixedPageStructure.cs
- MailAddressCollection.cs
- AmbientEnvironment.cs
- PolicyManager.cs
- CompiledQueryCacheKey.cs
- RequestCache.cs
- AutoGeneratedFieldProperties.cs
- VisualBasicExpressionConverter.cs
- ForeignKeyFactory.cs
- NonBatchDirectoryCompiler.cs
- MeasureItemEvent.cs
- SerializationObjectManager.cs
- UserControlBuildProvider.cs
- BrushValueSerializer.cs
- WebPartCancelEventArgs.cs
- ValuePattern.cs
- MatrixStack.cs
- TextSearch.cs
- RegexCapture.cs
- CodeMemberProperty.cs
- Util.cs
- FormatterServices.cs
- BlockUIContainer.cs
- DataGridTextBox.cs
- FacetDescriptionElement.cs
- bindurihelper.cs
- MonthCalendar.cs
- OutKeywords.cs
- RoutedPropertyChangedEventArgs.cs
- InstanceData.cs
- FormsAuthenticationUserCollection.cs
- WindowsRichEdit.cs
- WbmpConverter.cs
- CodeSnippetTypeMember.cs
- DeferrableContent.cs
- ServicePoint.cs
- WebConfigurationManager.cs
- ServiceReference.cs
- PerformanceCounter.cs