⽂本框限制输⼊(半⾓,全⾓互转),以及控制输⼊法问题,
textbox控件边框设置解决⽅法整合
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 中)
语法
C#
public
static
string
(
string str
,
Conversion
,
[OptionalAttribute] int LocaleID
)
参数
str
必选。要转换的 String 表达式。
Conversion
必选。VbStrConv 枚举 成员。指定要执⾏的转换类型的枚举值。
LocaleID
可选。LocaleID 值(如果与系统 LocaleID 值不同)。(系统 LocaleID 值为默认值。)返回值
返回已转换为指定形式的字符串。
Conversion 参数的设置为:
枚举成员说明
VbStrConv.None不执⾏任何转换
VbStrConv.LinguisticCasing 使⽤语⾔规则进⾏⼤⼩写,⽽不使⽤⽂件系统(默认)。仅当与 VbStrConv.UpperCase 和VbStrConv.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;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论