就是说,要求全角、半角字符的自动切换,选中表单上某个TextBox自动切换成汉字状态以便输入汉字,选中另一个TextBox又自动切换为英文输入状态可输入半角字符。
解决方案 »
- WPF如何取Grid获取其中的Button
- 请问大家这样的表格在sqlserver数据库里怎么设计最好
- socket通信中同步方式下阻塞时cpu占用几乎达100%,什么原因?
- 数据集中如何获得存储过程中的返回值?
- 有办法遍历一个类中的每一个属性吗?????????
- win窗体如何用 foreach 来绑定 datagrid,
- 我将.net下的水晶报表升级道10了,可是部署在其它计算机上不能运行报表,请各位大虾帮忙,感激不尽
- 怎么学好c#
- 我是搞J2EE的,今天开始学.NET.散分.
- 在C#下怎么样设置映射模式,就象在VC6.0中一样的??????????????????????????????????
- 为方便拖曳,怎么实现按下鼠标就选择TreeView的节点
- (C# - WinForms) 如何强制某窗体获得焦点?
TextBox.ImeMode = ImeMode.Off; //关闭输入法
/// <summary>
/// 转全角的函数(SBC case)
/// </summary>
/// <param name="input">任意字符串</param>
/// <returns>全角字符串</returns>
///<res>
///全角空格为12288,半角空格为32
///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
///</res>
public static 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);
}
/// <summary> 转半角的函数(DBC case) </summary>
/// <param name="input">任意字符串</param>
/// <returns>半角字符串</returns>
///<res>
///全角空格为12288,半角空格为32
///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
///</res>
public static 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);
}
return new string(c);
}
#endregion
TextBox.ImeMode = ImeMode.Off; //关闭输入法
{
InputLanguage il = InputLanguage.InstalledInputLanguages[0];
InputLanguage.CurrentInputLanguage = il;
} private void textBox1_Leave(object sender, EventArgs e)
{
InputLanguage il = InputLanguage.InstalledInputLanguages[1];
InputLanguage.CurrentInputLanguage = il;
}
1)键盘常规输入,即事件KeyDown/KeyPress/KeyUp
2)快捷键输入,即Ctrl+V
3)鼠标上下文菜单输入,即 Pasete
请参考拙文关于控制只输入数字的解决方案:定制C# TextBox中只允许输入数字的解决方法,稍做修改就可以控制只允许数字和字母的输入。
{
}
TextBox.ImeMode = ImeMode.Off; //关闭输入法