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

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;  
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值