松鼠的博客

导航

在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 2008-05-18 22:04  Xproer-松鼠  阅读(324)  评论(0)    收藏  举报