zoukankan      html  css  js  c++  java
  • 将输入的字符串分2个字符添加空格并大写格式化

    /// <summary>
    /// 格式化输入文本框(只允许输入字母且每隔两个字符添加空格空位)
    /// </summary>
    public class FormatTextBox : RadTextBox
    {
    #region define、attribute

    /// <summary>
    /// 是否为退格键
    /// </summary>
    private bool IsEmptyKey = false;

    /// <summary>
    /// 枚举类型,False表示不转换,True表示转换为大写
    /// </summary>
    public enum ToUppers
    {
    False,
    True,
    }
    private ToUppers to_Upper;
    [DefaultValue(ToUppers.False)]
    public ToUppers To_Upper
    {
    get
    {
    return to_Upper;
    }
    set
    {
    to_Upper = value;
    }
    }

    #endregion

    #region verride event

    protected override void OnKeyPress(System.Windows.Forms.KeyPressEventArgs e)
    {
    base.OnKeyPress(e);

    SetStandard(e);
    }

    /// <summary>
    /// 只允许输入字母和退格键
    /// </summary>
    /// <param name="e">键盘按键</param>
    private void SetStandard(System.Windows.Forms.KeyPressEventArgs e)
    {
    //只允许输入字母
    Regex regex = new Regex("^[a-zA-Z]");
    MatchCollection mc = regex.Matches(e.KeyChar.ToString());
    foreach (Match ma in mc)
    {
    e.Handled = false;
    if (e.KeyChar == '')
    {
    IsEmptyKey = true;
    }
    return;
    }

    e.Handled = true;
    }

    protected override void OnTextChanged(EventArgs e)
    {
    base.OnTextChanged(e);

    if (ToUppers.True.ToString() == To_Upper.ToString())
    {
    this.Text = this.Text.ToUpper();
    this.Select(Text.Length, 0);
    }
    }

    public override string Text
    {
    get
    {
    return base.Text;
    }
    set
    {
    //退格键
    if (IsEmptyKey)
    {
    base.Text = value;
    IsEmptyKey = false;
    return;
    }
    if (value.Length < 2)
    {
    base.Text = value;
    return;
    }

    StringBuilder sb = new StringBuilder();
    string content = value.Trim();
    content = content.Replace(" ", string.Empty);
    try
    {
    int length = content.Length / 2;
    int num = 2;
    if (content.Length > 0)
    {
    for (int i = 0; i < length; i++)
    {
    num = 2 * i;
    string tempStr = content.Substring(num, 2);
    sb.Append(tempStr);
    sb.Append(" ");
    }
    }
    //长度为奇数时追加最后一个字符
    int remainder = content.Length % 2;
    if (remainder == 1)
    {
    string tempStr = content.Substring(content.Length - 1, 1);
    sb.Append(tempStr);
    }
    }
    catch
    {
    return;
    }

    base.Text = sb.ToString().ToUpper();
    return;
    }
    }

    #endregion

    }

     

  • 相关阅读:
    ubuntu 下redis的安装简介
    Oracle 的几种循环方式介绍
    NIO 概述 与 通信实例
    io 的一些简单说明及使用
    webSocket的 原理 及 实现
    事务 与事务的 隔离级别 简单说明
    case 函数的简单使用记录下
    java HttpClient 忽略证书的信任的实现 MySSLProtocolSocketFactory
    南京小吃八绝
    JavaScript图表库(百度)
  • 原文地址:https://www.cnblogs.com/YYkun/p/5663170.html
Copyright © 2011-2022 走看看