DotNet 4.8.1 build of DotNetBar
This commit is contained in:
@@ -0,0 +1,251 @@
|
||||
#if FRAMEWORK20
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Windows.Forms.Design;
|
||||
using System.ComponentModel;
|
||||
using DevComponents.DotNetBar.Controls;
|
||||
using System.Collections;
|
||||
using DevComponents.DotNetBar.Rendering;
|
||||
using System.Drawing.Design;
|
||||
using System.ComponentModel.Design;
|
||||
using System.Reflection;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace DevComponents.DotNetBar.Design
|
||||
{
|
||||
public class MaskedTextBoxAdvDesigner : ControlDesigner
|
||||
{
|
||||
public override void InitializeNewComponent(IDictionary defaultValues)
|
||||
{
|
||||
base.InitializeNewComponent(defaultValues);
|
||||
MaskedTextBoxAdv control = this.Control as MaskedTextBoxAdv;
|
||||
control.BackgroundStyle.Class = ElementStyleClassKeys.TextBoxBorderKey;
|
||||
control.ButtonClear.Visible = true;
|
||||
control.Height = control.PreferredHeight;
|
||||
control.Text = "";
|
||||
control.Style = eDotNetBarStyle.StyleManagerControlled;
|
||||
}
|
||||
|
||||
public override SelectionRules SelectionRules
|
||||
{
|
||||
get
|
||||
{
|
||||
return (base.SelectionRules & ~(SelectionRules.BottomSizeable | SelectionRules.TopSizeable));
|
||||
}
|
||||
}
|
||||
|
||||
protected override void PreFilterProperties(IDictionary properties)
|
||||
{
|
||||
base.PreFilterProperties(properties);
|
||||
string[] strArray = new string[] { "Text", "PasswordChar" };
|
||||
Attribute[] attributes = new Attribute[0];
|
||||
for (int i = 0; i < strArray.Length; i++)
|
||||
{
|
||||
PropertyDescriptor oldPropertyDescriptor = (PropertyDescriptor)properties[strArray[i]];
|
||||
if (oldPropertyDescriptor != null)
|
||||
{
|
||||
properties[strArray[i]] = TypeDescriptor.CreateProperty(typeof(MaskedTextBoxAdvDesigner), oldPropertyDescriptor, attributes);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public char PasswordChar
|
||||
{
|
||||
get
|
||||
{
|
||||
MaskedTextBoxAdv control = this.Control as MaskedTextBoxAdv;
|
||||
if (control.UseSystemPasswordChar)
|
||||
{
|
||||
control.UseSystemPasswordChar = false;
|
||||
char passwordChar = control.PasswordChar;
|
||||
control.UseSystemPasswordChar = true;
|
||||
return passwordChar;
|
||||
}
|
||||
return control.PasswordChar;
|
||||
}
|
||||
set
|
||||
{
|
||||
MaskedTextBoxAdv control = this.Control as MaskedTextBoxAdv;
|
||||
control.PasswordChar = value;
|
||||
}
|
||||
}
|
||||
|
||||
public string Text
|
||||
{
|
||||
get
|
||||
{
|
||||
MaskedTextBoxAdv control = this.Control as MaskedTextBoxAdv;
|
||||
if (string.IsNullOrEmpty(control.Mask))
|
||||
{
|
||||
return control.Text;
|
||||
}
|
||||
return control.MaskedTextProvider.ToString(false, false);
|
||||
}
|
||||
set
|
||||
{
|
||||
MaskedTextBoxAdv control = this.Control as MaskedTextBoxAdv;
|
||||
if (string.IsNullOrEmpty(control.Mask))
|
||||
{
|
||||
control.Text = value;
|
||||
}
|
||||
else
|
||||
{
|
||||
bool resetOnSpace = control.ResetOnSpace;
|
||||
bool resetOnPrompt = control.ResetOnPrompt;
|
||||
bool skipLiterals = control.SkipLiterals;
|
||||
control.ResetOnSpace = true;
|
||||
control.ResetOnPrompt = true;
|
||||
control.SkipLiterals = true;
|
||||
control.Text = value;
|
||||
control.ResetOnSpace = resetOnSpace;
|
||||
control.ResetOnPrompt = resetOnPrompt;
|
||||
control.SkipLiterals = skipLiterals;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private DesignerActionListCollection _Actions = null;
|
||||
public override DesignerActionListCollection ActionLists
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this._Actions == null)
|
||||
{
|
||||
this._Actions = new DesignerActionListCollection();
|
||||
this._Actions.Add(new MaskedTextBoxAdvDesignerActionList(this));
|
||||
}
|
||||
return this._Actions;
|
||||
}
|
||||
}
|
||||
|
||||
public override DesignerVerbCollection Verbs
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this._Verbs == null)
|
||||
{
|
||||
this._Verbs = new DesignerVerbCollection();
|
||||
this._Verbs.Add(new DesignerVerb("Set Mask...", new EventHandler(this.OnVerbSetMask)));
|
||||
}
|
||||
return this._Verbs;
|
||||
}
|
||||
}
|
||||
|
||||
private DesignerVerbCollection _Verbs = null;
|
||||
private void OnVerbSetMask(object sender, EventArgs e)
|
||||
{
|
||||
new MaskedTextBoxAdvDesignerActionList(this).SetMask();
|
||||
}
|
||||
}
|
||||
|
||||
public class MaskedTextBoxAdvDesignerActionList : DesignerActionList
|
||||
{
|
||||
// Fields
|
||||
private ITypeDiscoveryService discoverySvc;
|
||||
private IHelpService helpService;
|
||||
private MaskedTextBoxAdv maskedTextBox;
|
||||
private IUIService uiSvc;
|
||||
|
||||
// Methods
|
||||
public MaskedTextBoxAdvDesignerActionList(MaskedTextBoxAdvDesigner designer)
|
||||
: base(designer.Component)
|
||||
{
|
||||
this.maskedTextBox = (MaskedTextBoxAdv)designer.Component;
|
||||
this.discoverySvc = base.GetService(typeof(ITypeDiscoveryService)) as ITypeDiscoveryService;
|
||||
this.uiSvc = base.GetService(typeof(IUIService)) as IUIService;
|
||||
this.helpService = base.GetService(typeof(IHelpService)) as IHelpService;
|
||||
if (this.discoverySvc != null)
|
||||
{
|
||||
IUIService uiSvc = this.uiSvc;
|
||||
}
|
||||
}
|
||||
|
||||
public override DesignerActionItemCollection GetSortedActionItems()
|
||||
{
|
||||
DesignerActionItemCollection items = new DesignerActionItemCollection();
|
||||
items.Add(new DesignerActionMethodItem(this, "SetMask", "Set Mask..."));
|
||||
return items;
|
||||
}
|
||||
|
||||
public void SetMask()
|
||||
{
|
||||
string str = MaskAdvPropertyEditor.EditMask(this.discoverySvc, this.uiSvc, this.maskedTextBox, this.helpService);
|
||||
if (str != null)
|
||||
{
|
||||
PropertyDescriptor descriptor = TypeDescriptor.GetProperties(this.maskedTextBox)["Mask"];
|
||||
if (descriptor != null)
|
||||
{
|
||||
descriptor.SetValue(this.maskedTextBox, str);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class MaskAdvPropertyEditor : UITypeEditor
|
||||
{
|
||||
// Methods
|
||||
internal static string EditMask(ITypeDiscoveryService discoverySvc, IUIService uiSvc, MaskedTextBoxAdv instance, IHelpService helpService)
|
||||
{
|
||||
string mask = null;
|
||||
Type formType = Type.GetType("System.Windows.Forms.Design.MaskDesignerDialog, System.Design, Version= 2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
|
||||
ConstructorInfo ci = formType.GetConstructor(new Type[] { typeof(MaskedTextBox), typeof(IHelpService) });
|
||||
Form form = ci.Invoke(new object[]{instance.MaskedTextBox, helpService}) as Form;
|
||||
|
||||
try
|
||||
{
|
||||
MethodInfo mi = formType.GetMethod("DiscoverMaskDescriptors");
|
||||
mi.Invoke(form, new object[]{discoverySvc});
|
||||
//form.DiscoverMaskDescriptors(discoverySvc);
|
||||
DialogResult result = (uiSvc != null) ? uiSvc.ShowDialog(form) : form.ShowDialog();
|
||||
if (result == DialogResult.OK)
|
||||
{
|
||||
PropertyInfo pi = formType.GetProperty("Mask");
|
||||
mask = (string)pi.GetValue(form, null);
|
||||
pi = formType.GetProperty("ValidatingType");
|
||||
Type validatingType = pi.GetValue(form, null) as Type;
|
||||
//mask = form.Mask;
|
||||
if (validatingType == instance.ValidatingType)
|
||||
{
|
||||
return mask;
|
||||
}
|
||||
instance.ValidatingType = validatingType;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
form.Dispose();
|
||||
}
|
||||
return mask;
|
||||
}
|
||||
|
||||
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
|
||||
{
|
||||
if ((context != null) && (provider != null))
|
||||
{
|
||||
ITypeDiscoveryService discoverySvc = (ITypeDiscoveryService)provider.GetService(typeof(ITypeDiscoveryService));
|
||||
IUIService service = (IUIService)provider.GetService(typeof(IUIService));
|
||||
IHelpService helpService = (IHelpService)provider.GetService(typeof(IHelpService));
|
||||
string str = EditMask(discoverySvc, service, context.Instance as MaskedTextBoxAdv, helpService);
|
||||
if (str != null)
|
||||
{
|
||||
return str;
|
||||
}
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context)
|
||||
{
|
||||
return UITypeEditorEditStyle.Modal;
|
||||
}
|
||||
|
||||
public override bool GetPaintValueSupported(ITypeDescriptorContext context)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
#endif
|
Reference in New Issue
Block a user