• 文本框限制输入(半角,全角互转),以及控制输入法问题,解决方法整合


     

    1.  TextBox限制只允许输入半角数字

         Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles telList.KeyPress
             If (Not System.Text.RegularExpressions.Regex.IsMatch(e.KeyChar.ToString(), "[0-9]") And e.KeyChar <> " ") Then
                 e.Handled = True
                 Return
             End If
         End Sub

    ------------------------------------------------------------------------------------------------------------------------

    2.如何控制在DataGrid中不能输入全角数字,符号,字母?    
      ===============================================  
      1.屏蔽全角  
      2.把全角转为半角  
       
      private   string   ToDBS(string   str)//全角转半角  
      {  
        return   Regex.Replace(str,"[\\w]",new   MatchEvaluator(RegReplace));  
      }  
      private     string   RegReplace(Match   m)  
      {  
            if((int)m.Value[0]>=65281&(int)m.Value[0]<=65374)return   ((char)((int)m.Value[0]-65248)).ToString();  
            if((int)m.Value[0]==12288)return   ((char)32).ToString();;  
      return   m.Value;  
      }

    -------------------------------------------------------------------------------------------------------------------------------

    3.有很多方法,不过不建议你去限制输入(验证控件,正则,字符处理),这样会降低录入效率
    你可以在处理数据前将数据都转成半角
    可以参考vb下 StrConv方法
    VB.NET直接调StrConv函数就行了,C#版的则需要在项目中添加引用Microsoft.VisualBasic.dll, 然后就可以在C#程序中直接使用VB.NET的StrConv函数了。

    回已转换为指定形式的字符串。

    命名空间:Microsoft.VisualBasic
    程序集:Microsoft.VisualBasic(在 microsoft.visualbasic.dll 中)

    语法

    Visual Basic(声明)
    Public Shared Function StrConv ( _
    	str As String, _
    	Conversion As VbStrConv, _
    	<OptionalAttribute> Optional LocaleID As Integer = 0 _
    ) As String
    Visual Basic(用法)
    Dim str As String
    Dim Conversion As VbStrConv
    Dim LocaleID As Integer
    Dim returnValue As String
    
    returnValue = Strings.StrConv(str, Conversion, LocaleID)
    C#
    public static string StrConv (
    	string str,
    	VbStrConv Conversion,
    	[OptionalAttribute] int LocaleID
    )
    C++
    public:
    static String^ StrConv (
    	String^ str, 
    	VbStrConv Conversion, 
    	[OptionalAttribute] int LocaleID
    )
    J#
    public static String StrConv (
    	String str, 
    	VbStrConv Conversion, 
    	/** @attribute OptionalAttribute() */ int LocaleID
    )
    JScript
    public static function StrConv (
    	str : String, 
    	Conversion : VbStrConv, 
    	LocaleID : int
    ) : String

     

    参数

    str

    必选。要转换的 String 表达式。

    Conversion

    必选。VbStrConv 枚举 成员。指定要执行的转换类型的枚举值。

    LocaleID

    可选。LocaleID 值(如果与系统 LocaleID 值不同)。(系统 LocaleID 值为默认值。)

    返回值

    返回已转换为指定形式的字符串。

    Conversion 参数的设置为:

    枚举成员

    说明

    VbStrConv.None

    不执行任何转换

    VbStrConv.LinguisticCasing

    使用语言规则进行大小写,而不使用文件系统(默认)。仅当与 VbStrConv.UpperCaseVbStrConv.LowerCase 一起使用时才有效。

    VbStrConv.UpperCase

    将字符串转换为大写字符。

    VbStrConv.LowerCase

    将字符串转换为小写字符。

    VbStrConv.ProperCase

    将字符串中每个单词的第一个字母转换为大写。

    VbStrConv.Wide *

    将字符串中的窄(半角)字符转换为宽(全角)字符。

    VbStrConv.Narrow *

    将字符串中的宽(全角)字符转换为窄(半角)字符。

    VbStrConv.Katakana **

    将字符串中的平假名字符转换为片假名字符。

    VbStrConv.Hiragana **

    将字符串中的片假名字符转换为平假名字符。

    VbStrConv.SimplifiedChinese *

    将繁体中文字符转换为简体中文字符。

    VbStrConv.TraditionalChinese *

    将简体中文字符转换为繁体中文字符。

    *   适用于亚洲区域设置。

    **   仅适用于日本。

    ---------------------------------------------------------------------------------------------------------------------------

    4.public   string     ChangeStr(   string   str)  
      {  
      //把字母,数字由半角转化为全角  
      char[]   c=str.ToCharArray();  
      for   (int   i=0;i<c.Length;i++)  
      {  
      byte[]   b=System.Text.Encoding.Unicode.GetBytes(c,i,1);  
      if   (b.Length==2)  
      {  
      if   (b[1]==0)  
      {  
      b[0]=(byte)(b[0]-32);  
      b[1]=255;  
      c[i]=System.Text.Encoding.Unicode.GetChars(b)[0];  
      }  
      }  
      }  
      //半角  
      string   strNew=new   string(c);  
      return   strNew;  
      }

  • 相关阅读:
    JVM之内存区域
    记录Spring Boot小项目的一些坑
    JVM之编译OpenJDK
    Java容器之HashMap源码分析1
    IO流(1)--文件流及其原理
    IO流(0)
    Java中的字节和字符
    整理全网优秀的API接口设计及相关优秀的接口管理、在线文档生成工具
    关于智慧城市的建设方案和资料,相关内容大多来源于互联网,收集整理方便项目经理、产品经理、相关交通领域公司的使用
    整理可视化大屏设计教程与相关资源,大屏设计,可视化
  • 原文地址:https://www.cnblogs.com/daytoday/p/1786732.html
Copyright © 2020-2023  润新知