本贴为转自别人的blog,希望对朋友在datagridview或文本框开发过程中有全角半角的限制起作用
///
<summary>
/// 全角转半角的函数(DBC case)
/// </summary>
/// <param name="input"> 任意字符串 </param>
/// <returns> 半角字符串 </returns>
/// <remarks>
/// 全角空格为12288,半角空格为32
/// 其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
/// </remarks>
public string ToDBC( string input)
{
char [] c = input.ToCharArray();
for ( int i = 0 ; i < c.Length; i ++ )
{
if (c[i] == 12288 )
{
c[i] = ( char ) 32 ;
continue ;
}
if (c[i] > 65280 && c[i] < 65375 )
c[i] = ( char )(c[i] - 65248 );
}
string str = c.ToString().Replace( " 。 " , " . " );
return new string (c);
}
/// <summary>
/// 判断字符是否为全角字符
/// </summary>
/// <param name="c"> 任意字符 </param>
/// <returns> 全角字符返回true,半角返回false </returns>
public bool isCharDBC( char c)
{
if (c > 65280 && c < 65375 )
return true ;
else
return false ;
}
/// <summary>
/// 半角转全角的函数(SBC case)
/// </summary>
/// <param name="input"> 任意字符串 </param>
/// <returns> 全角字符串 </returns>
/// <remarks>
/// 全角空格为12288,半角空格为32
/// 其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
/// </remarks>
public string ToSBC( string input)
{
// 半角转全角:
char [] c = input.ToCharArray();
for ( int i = 0 ; i < c.Length; i ++ )
{
if (c[i] == 32 )
{
c[i] = ( char ) 12288 ;
continue ;
}
if (c[i] < 127 )
c[i] = ( char )(c[i] + 65248 );
}
return new string (c);
}
/// 全角转半角的函数(DBC case)
/// </summary>
/// <param name="input"> 任意字符串 </param>
/// <returns> 半角字符串 </returns>
/// <remarks>
/// 全角空格为12288,半角空格为32
/// 其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
/// </remarks>
public string ToDBC( string input)
{
char [] c = input.ToCharArray();
for ( int i = 0 ; i < c.Length; i ++ )
{
if (c[i] == 12288 )
{
c[i] = ( char ) 32 ;
continue ;
}
if (c[i] > 65280 && c[i] < 65375 )
c[i] = ( char )(c[i] - 65248 );
}
string str = c.ToString().Replace( " 。 " , " . " );
return new string (c);
}
/// <summary>
/// 判断字符是否为全角字符
/// </summary>
/// <param name="c"> 任意字符 </param>
/// <returns> 全角字符返回true,半角返回false </returns>
public bool isCharDBC( char c)
{
if (c > 65280 && c < 65375 )
return true ;
else
return false ;
}
/// <summary>
/// 半角转全角的函数(SBC case)
/// </summary>
/// <param name="input"> 任意字符串 </param>
/// <returns> 全角字符串 </returns>
/// <remarks>
/// 全角空格为12288,半角空格为32
/// 其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
/// </remarks>
public string ToSBC( string input)
{
// 半角转全角:
char [] c = input.ToCharArray();
for ( int i = 0 ; i < c.Length; i ++ )
{
if (c[i] == 32 )
{
c[i] = ( char ) 12288 ;
continue ;
}
if (c[i] < 127 )
c[i] = ( char )(c[i] + 65248 );
}
return new string (c);
}