松鼠的博客

导航

统计

在C#应用程序中控制输入法

在Windows系统一般都安装了至少三种输入法,在输入数据时常常会切换输入法,虽然Windows系统提供了切换快捷健,但对输入工作还是带来了不少麻烦。如果在应用程序中为用户提供智能输入法自动切换,那么这样的应用程序就显得更加专业、更加具有竞争力。不知你可用过Access,在表数据输入时Access自动切换输入法,很酷吧,现在你也可以实现这一切。如果也想你的程式也酷一下的话,请继续...

  为了控制输入法,.NET类库在System.Windows.Forms.InputLanguage类中提供了支持。我计划先花一点时间讲述InputLanguage类的功能,随后举一个实例InputLanguageRichEdit。

  1、InputLanguage类是一个密封类,它提供了许多方法和属性实现输入法管理功能,这其中有几个属性尤其重要,我将在下面逐一讲解,如果你想全面了解类的全部方法和属性,请浏览MSDN。

public static InputLanguage CurrentInputLanguage {get; set;}
//获得或设置当前线程的输入法。

public static InputLanguage DefaultInputLanguage
//获得缺省输入法。

public static InputLanguageCollection InstalledInputLanguages
//获得系统输入法集。可以通过这个容器对象列举系统当前安装的输入法列表。

public string LayoutName
//获得输入法在系统托盘中的注册名称。
(4)、插入下面代码:

private void Form1_Load(object sender, System.EventArgs e)
{
 InputLanguageCollection ilc = InputLanguage.InstalledInputLanguages;
 foreach ( InputLanguage il in ilc )
 {
  comboBox1.Items.Add( il.LayoutName );
 }
 comboBox1.SelectedIndex = InputLanguage.InstalledInputLanguages.IndexOf(   InputLanguage.CurrentInputLanguage ) ;
}

private void comboBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
 InputLanguage il = InputLanguage.InstalledInputLanguages[ comboBox1.SelectedIndex ];
 InputLanguage.CurrentInputLanguage = il;
}

private void ChangeInput(object sender, System.Windows.Forms.InputLanguageChangedEventArgs e)
{
 InputLanguage il = e.InputLanguage ;
 int i = InputLanguage.InstalledInputLanguages.IndexOf( il );
 if( i >= 0 && i < InputLanguage.InstalledInputLanguages.Count )
 {
  comboBox1.SelectedIndex = i ;
 }
}

private void But_Eixt_Click(object sender, System.EventArgs e)
{
 Application.Exit();
}

posted on   Xproer-松鼠  阅读(314)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示