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
- JsonDataContract.cs
- Membership.cs
- UrlPath.cs
- FrameworkElement.cs
- basecomparevalidator.cs
- DiscoveryExceptionDictionary.cs
- WhiteSpaceTrimStringConverter.cs
- Encoder.cs
- VariableQuery.cs
- InspectionWorker.cs
- QueryAccessibilityHelpEvent.cs
- MenuItemAutomationPeer.cs
- GridPattern.cs
- ManipulationVelocities.cs
- WrappedIUnknown.cs
- DtrList.cs
- ValidatorUtils.cs
- DataGridViewCheckBoxColumn.cs
- SeparatorAutomationPeer.cs
- DataGridLengthConverter.cs
- StylusPlugInCollection.cs
- COM2IDispatchConverter.cs
- HtmlInputButton.cs
- PathGradientBrush.cs
- SaveRecipientRequest.cs
- EdmMember.cs
- EmptyElement.cs
- D3DImage.cs
- MethodRental.cs
- iisPickupDirectory.cs
- ProjectionCamera.cs
- ToolStripDropDownClosedEventArgs.cs
- HttpsTransportElement.cs
- CfgArc.cs
- Clause.cs
- CreateUserWizard.cs
- Validator.cs
- FrameworkElementFactoryMarkupObject.cs
- MultiSelectRootGridEntry.cs
- SqlTransaction.cs
- DecimalKeyFrameCollection.cs
- PropertyGeneratedEventArgs.cs
- ObjectSpanRewriter.cs
- Decoder.cs
- Point4DValueSerializer.cs
- WorkflowLayouts.cs
- SettingsSavedEventArgs.cs
- MediaContextNotificationWindow.cs
- SingleStorage.cs
- EncoderReplacementFallback.cs
- DrawingServices.cs
- ListBox.cs
- XmlWriter.cs
- CacheMemory.cs
- OdbcConnection.cs
- KeyInstance.cs
- QuotedStringFormatReader.cs
- DependencyObjectProvider.cs
- DocumentPageViewAutomationPeer.cs
- SpecialNameAttribute.cs
- RegistryKey.cs
- BoundsDrawingContextWalker.cs
- InfoCardMasterKey.cs
- QuarticEase.cs
- ImageButton.cs
- WindowsSpinner.cs
- clipboard.cs
- ParseNumbers.cs
- MissingManifestResourceException.cs
- SetMemberBinder.cs
- TreePrinter.cs
- StrongNamePublicKeyBlob.cs
- TTSEngineTypes.cs
- RegionData.cs
- _AutoWebProxyScriptHelper.cs
- DataGridViewCell.cs
- HttpModuleActionCollection.cs
- DurableInstanceContextProvider.cs
- ColorMap.cs
- ExpressionNode.cs
- AvTrace.cs
- NativeMethodsOther.cs
- HistoryEventArgs.cs
- TableAdapterManagerNameHandler.cs
- ContextMenuStrip.cs
- Win32.cs
- RowToFieldTransformer.cs
- ComponentCollection.cs
- SqlWorkflowPersistenceService.cs
- ComponentResourceManager.cs
- WebPartCatalogCloseVerb.cs
- _IPv4Address.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- DesignTimeParseData.cs
- RoutedCommand.cs
- WebServicesSection.cs
- MemberMaps.cs
- ImageButton.cs
- FieldMetadata.cs
- XmlLoader.cs