| File: System\Windows\Forms\Design\MaskedTextBoxDesignerActionList.cs | Web Access |
| Project: src\winforms\src\System.Windows.Forms.Design\src\System.Windows.Forms.Design.csproj (System.Windows.Forms.Design) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.ComponentModel; using System.ComponentModel.Design; namespace System.Windows.Forms.Design; /// <summary> /// Describes the list of actions that can be performed in the MaskedTextBox control from the /// Chrome pannel. /// </summary> internal class MaskedTextBoxDesignerActionList : DesignerActionList { private readonly MaskedTextBox _maskedTextBox; private readonly ITypeDiscoveryService? _discoverySvc; private readonly IUIService? _uiSvc; private readonly IHelpService? _helpService; /// <summary> /// Constructor receiving a MaskedTextBox control the action list applies to. The ITypeDiscoveryService /// service provider is used to populate the canned mask list control in the MaskDesignerDialog dialog and /// the IUIService provider is used to display the MaskDesignerDialog within VS. /// </summary> public MaskedTextBoxDesignerActionList(MaskedTextBoxDesigner designer) : base(designer.Component) { _maskedTextBox = (MaskedTextBox)designer.Component; _discoverySvc = GetService(typeof(ITypeDiscoveryService)) as ITypeDiscoveryService; _uiSvc = GetService(typeof(IUIService)) as IUIService; _helpService = GetService(typeof(IHelpService)) as IHelpService; if (_discoverySvc is null || _uiSvc is null) { Debug.Fail("could not get either ITypeDiscoveryService or IUIService"); } } /// <summary> /// Pops up the Mask design dialog for the user to set the control's mask. /// </summary> public void SetMask() { string? mask = MaskPropertyEditor.EditMask(_discoverySvc, _uiSvc, _maskedTextBox, _helpService); if (mask is null) { return; } PropertyDescriptor? maskProperty = TypeDescriptor.GetProperties(_maskedTextBox)["Mask"]; maskProperty?.SetValue(_maskedTextBox, mask); } /// <summary> /// Returns the control's action list items. /// </summary> public override DesignerActionItemCollection GetSortedActionItems() { DesignerActionItemCollection items = [new DesignerActionMethodItem(this, "SetMask", SR.MaskedTextBoxDesignerVerbsSetMaskDesc)]; return items; } }