您的位置:首页 > 其它

如何控制在DataGrid中不能输入全角数字,符号,字母?

2007-12-10 14:53 369 查看
如何控制在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;

}

Top

/// 半角转全角

/// </summary>

/// <param name="BJstr"></param>

/// <returns></returns>

static public string GetQuanJiao(string BJstr)

{

#region

char[] c = BJstr.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;

#endregion

}

/// <summary>

/// 全角转半角

/// </summary>

/// <param name="QJstr"></param>

/// <returns></returns>

static public string GetBanJiao(string QJstr)

{

#region

char[] c = QJstr.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] == 255)

{

b[0] = (byte)(b[0] + 32);

b[1] = 0;

c[i] = System.Text.Encoding.Unicode.GetChars(b)[0];

}

}

}

string strNew = new string(c);

return strNew;

#endregion

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: