110,534
社区成员
发帖
与我相关
我的任务
分享
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.ComponentModel.Design.Serialization;
using System.Reflection;
namespace MyControls
{
public partial class TextBox_Algorithm : TextBox
{
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
bool result = FilterInputKeys(keyData);
if (result)
return result;
//return true;
//MessageBox.Show(keyData.ToString());
return base.ProcessCmdKey(ref msg, keyData); ;
}
private bool FilterInputKeys(Keys keyData)
{
bool tag = false;
//Code here
if (SetPermissionKeys.Enable)
{
if (SetPermissionKeys.SetThePermission == SetPermisstion.AllowThePermisstionKeys)
{
//AllowThePermisstionKeys
if (SetPermissionKeys.ThePermissionKeys.Contains(keyData))
{
tag = false;
}
else
{
tag = true;
}
return tag;
}
if (SetPermissionKeys.SetThePermission == SetPermisstion.NotAllowThePermissionKeys)
{
//NotAllowThePermisstionKeys
if (SetPermissionKeys.ThePermissionKeys.Contains(keyData))
{
tag = true;
}
else
{
tag = false;
}
return tag;
}
}
return tag;
}
private PermissionKeys _setPermissionKeys = new PermissionKeys();
public PermissionKeys SetPermissionKeys
{
get { return _setPermissionKeys; }
set { _setPermissionKeys = value; }
}
}
public class MyConverter : TypeConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
if (sourceType == typeof(PermissionKeys)) return true;
return base.CanConvertFrom(context, sourceType);
}
public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)
{
if (destinationType == typeof(PermissionKeys)) return true;
if (destinationType == typeof(InstanceDescriptor)) return true;
return base.CanConvertTo(context, destinationType);
}
public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType)
{
PermissionKeys result = new PermissionKeys();
if (destinationType == typeof(PermissionKeys))
{
PermissionKeys permissionKeys = (PermissionKeys)value;
//result = permissionKeys.Min.ToString() + "," + permissionKeys.Max.ToString() + "," + permissionKeys.Sex.ToString();
result = new PermissionKeys();
return result;
}
if (destinationType == typeof(InstanceDescriptor))
{
ConstructorInfo ci = typeof(PermissionKeys).GetConstructor(new Type[] { typeof(List<Keys>), typeof(SetPermisstion), typeof(bool) });
PermissionKeys permissionKeys = (PermissionKeys)value;
return new InstanceDescriptor(ci, new object[] { permissionKeys.ThePermissionKeys, permissionKeys.SetThePermission, permissionKeys.Enable });
}
return base.ConvertTo(context, culture, value, destinationType);
}
public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value)
{
if (value is PermissionKeys)
{
PermissionKeys pk = new PermissionKeys();
return pk;
}
return base.ConvertFrom(context, culture, value);
}
public override bool GetPropertiesSupported(ITypeDescriptorContext context)
{
return true;
}
public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes)
{
return TypeDescriptor.GetProperties(typeof(PermissionKeys), attributes);
}
}
[TypeConverter(typeof(MyConverter))]
public class PermissionKeys
{
public PermissionKeys()
{
}
private List<Keys> _thePermissionKeys = new List<Keys>();
public List<Keys> ThePermissionKeys
{
get { return _thePermissionKeys; }
set { _thePermissionKeys = value; }
}
private SetPermisstion _setThePermission;
public SetPermisstion SetThePermission
{
get { return _setThePermission; }
set
{
if (!TypeDescriptor.GetConverter(typeof(SetPermisstion)).IsValid(value))
{
throw new ArgumentException();
}
_setThePermission = value;
}
}
private bool _enable;
public bool Enable
{
get { return _enable; }
set { _enable = value; }
}
}
/// <summary>
/// 设置限制模式
/// </summary>
public enum SetPermisstion
{
/// <summary>
/// 只允许已限制功能键的集合
/// </summary>
AllowThePermisstionKeys = 0,
/// <summary>
/// 禁止已限制功能键的集合
/// </summary>
NotAllowThePermissionKeys = 1
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.ComponentModel.Design.Serialization;
using System.Reflection;
namespace SiteToolsProject
{
public partial class TextBox_Algorithm : TextBox
{
public TextBox_Algorithm()
{
InitializeComponent();
}
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
bool result = FilterInputKeys(keyData);
if (result)
return result;
//return true;
//MessageBox.Show(keyData.ToString());
return base.ProcessCmdKey(ref msg, keyData); ;
}
private bool FilterInputKeys(Keys keyData)
{
bool tag = false;
//Code here
if (SetPermissionKeys.Enable)
{
if (SetPermissionKeys.SetThePermission == SetPermisstion.AllowThePermisstionKeys)
{
//AllowThePermisstionKeys
if (SetPermissionKeys.ThePermissionKeys.Contains(keyData))
{
tag = false;
}
else
{
tag = true;
}
return tag;
}
if (SetPermissionKeys.SetThePermission == SetPermisstion.NotAllowThePermissionKeys)
{
//NotAllowThePermisstionKeys
if (SetPermissionKeys.ThePermissionKeys.Contains(keyData))
{
tag = true;
}
else
{
tag = false;
}
return tag;
}
}
return tag;
}
public class MyConverter : TypeConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
if (sourceType == typeof(TextBox_Algorithm.PermissionKeys)) return true;
return base.CanConvertFrom(context, sourceType);
}
public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)
{
if (destinationType == typeof(TextBox_Algorithm.PermissionKeys)) return true;
if (destinationType == typeof(InstanceDescriptor)) return true;
return base.CanConvertTo(context, destinationType);
}
public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType)
{
TextBox_Algorithm.PermissionKeys result = new PermissionKeys();
if (destinationType == typeof(TextBox_Algorithm.PermissionKeys))
{
PermissionKeys permissionKeys = (PermissionKeys)value;
//result = permissionKeys.Min.ToString() + "," + permissionKeys.Max.ToString() + "," + permissionKeys.Sex.ToString();
result = new PermissionKeys();
return result;
}
if (destinationType == typeof(InstanceDescriptor))
{
ConstructorInfo ci = typeof(PermissionKeys).GetConstructor(new Type[] { typeof(List<Keys>), typeof(TextBox_Algorithm.SetPermisstion),typeof(bool) });
PermissionKeys permissionKeys = (PermissionKeys)value;
return new InstanceDescriptor(ci, new object[] { permissionKeys.ThePermissionKeys , permissionKeys.SetThePermission,permissionKeys.Enable });
}
return base.ConvertTo(context, culture, value, destinationType);
}
public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value)
{
if (value is PermissionKeys)
{
PermissionKeys pk = new PermissionKeys();
return pk;
}
return base.ConvertFrom(context, culture, value);
}
public override bool GetPropertiesSupported(ITypeDescriptorContext context)
{
return true;
}
public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes)
{
return TypeDescriptor.GetProperties(typeof(PermissionKeys), attributes);
}
}
private PermissionKeys _setPermissionKeys = new PermissionKeys();
public PermissionKeys SetPermissionKeys
{
get { return _setPermissionKeys; }
set { _setPermissionKeys = value; }
}
[TypeConverter(typeof(MyConverter))]
public class PermissionKeys
{
public PermissionKeys()
{
}
private List<Keys> _thePermissionKeys = new List<Keys>();
public List<Keys> ThePermissionKeys
{
get { return _thePermissionKeys; }
set { _thePermissionKeys = value; }
}
private SetPermisstion _setThePermission;
public SetPermisstion SetThePermission
{
get { return _setThePermission; }
set
{
if (!TypeDescriptor.GetConverter(typeof(SetPermisstion)).IsValid(value))
{
throw new ArgumentException();
}
_setThePermission = value;
}
}
private bool _enable;
public bool Enable
{
get { return _enable; }
set { _enable = value; }
}
}
/// <summary>
/// 设置限制模式
/// </summary>
public enum SetPermisstion
{
/// <summary>
/// 只允许已限制功能键的集合
/// </summary>
AllowThePermisstionKeys = 0,
/// <summary>
/// 禁止已限制功能键的集合
/// </summary>
NotAllowThePermissionKeys = 1
}
}
}
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{}
public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)
{}
public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType)
{}
public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value)
{}
public override bool GetPropertiesSupported(ITypeDescriptorContext context)
{}
public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes)
{}