溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C#控制輸入法怎么實現(xiàn)

發(fā)布時間:2021-12-01 13:53:35 來源:億速云 閱讀:400 作者:iii 欄目:編程語言

本篇內(nèi)容主要講解“C#控制輸入法怎么實現(xiàn)”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“C#控制輸入法怎么實現(xiàn)”吧!

在Windows系統(tǒng)一般都安裝了至少三種輸入法,在輸入數(shù)據(jù)時常常會切換輸入法,雖然Windows系統(tǒng)提供了切換快捷健,但對輸入工作還是帶來了不少麻煩。如果在應(yīng)用程序中為用戶提供智能輸入法自動切換,那么這樣的應(yīng)用程序就顯得更加專業(yè)、更加具有競爭力。不知你可用過Access,在表數(shù)據(jù)輸入時Access自動切換輸入法,很酷吧,現(xiàn)在你也可以實現(xiàn)這一切。如果也想你的程式也酷一下的話,請繼續(xù)...

為了C#控制輸入法,.NET類庫在System.Windows.Forms.InputLanguage類中提供了支持。我計劃先花一點時間講述InputLanguage類的功能,隨后舉一個實例InputLanguageRichEdit。

1、InputLanguage類是一個密封類,它提供了許多方法和屬性實現(xiàn)輸入法管理功能,這其中有幾個屬性尤其重要,我將在下面逐一講解,如果你想全面了解類的全部方法和屬性,請瀏覽MSDN。

public static InputLanguage CurrentInputLanguage {get; set;}  //獲得或設(shè)置當前線程的輸入法。   public static InputLanguage DefaultInputLanguage {get;}  //獲得缺省輸入法。   public static InputLanguageCollection InstalledInputLanguages{get;}  //獲得系統(tǒng)輸入法集??梢酝ㄟ^這個容器對象列舉系統(tǒng)當前安裝的輸入法列表。   public string LayoutName {get;}  //獲得輸入法在系統(tǒng)托盤中的注冊名稱。   ......

2、我們已經(jīng)研究了InputLanguage類提供的幾個重要屬性了,現(xiàn)在可以開始動手在應(yīng)用開發(fā)中應(yīng)用InputLanguage類。我想創(chuàng)建一個.NET Window Form的系統(tǒng)程序,用一個列表框列舉當前系統(tǒng)安裝的所有輸入法,通過改變列表框的選項自動改變當前線程的輸入法。同時還實現(xiàn)了根據(jù)桌面托盤中C#控制輸入法的變化來改變列表框的選項。

(1)、新建項目 --> 選擇"Visual C#項目" --> 輸入項目名:InputLanguageRichEdit。

(2)、在"工具箱"中拖一個RichTextBox控件,命名為:richTextBox1;一個ComboBox控件,命名為:comboBox1;一個Button控件,命名為:But_Exit。

(3)、用下面的代碼代替

  1. private void InitializeComponent()。  

  2. {  

  3. this.comboBox1 = new System.Windows.Forms.ComboBox();  

  4. this.richTextBox1 = new System.Windows.Forms.RichTextBox();  

  5. this.But_Eixt = new System.Windows.Forms.Button();  

  6. this.SuspendLayout();  

  7. //  

  8. // comboBox1  

  9. //  

  10. this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;  

  11. this.comboBox1.DropDownWidth = 160;  

  12. this.comboBox1.Location = new System.Drawing.Point(8, 232);  

  13. this.comboBox1.Name = "comboBox1";  

  14. this.comboBox1.Size = new System.Drawing.Size(168, 20);  

  15. this.comboBox1.TabIndex = 1;  

  16. this.comboBox1.SelectedIndexChanged += new System.EventHandler 
    (this.comboBox1_SelectedIndexChanged);  

  17. //  

  18. // richTextBox1  

  19. //  

  20. this.richTextBox1.Dock = System.Windows.Forms.DockStyle.Top;  

  21. this.richTextBox1.Name = "richTextBox1";  

  22. this.richTextBox1.Size = new System.Drawing.Size(292, 208);  

  23. this.richTextBox1.TabIndex = 0;  

  24. this.richTextBox1.Text = "";  

  25. //  

  26. // But_Eixt  

  27. //  

  28. this.But_Eixt.Location = new System.Drawing.Point(200, 232);  

  29. this.But_Eixt.Name = "But_Eixt";  

  30. this.But_Eixt.TabIndex = 2;  

  31. this.But_Eixt.Text = "Eixt";  

  32. //  

  33. // Form1  

  34. //  

  35. this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);  

  36. this.ClientSize = new System.Drawing.Size(292, 273);  

  37. this.Controls.AddRange(new System.Windows.Forms.Control[] {  

  38. this.But_Eixt,this.comboBox1,this.richTextBox1});  

  39. this.Name = "Form1";  

  40. this.Text = "Form1";  

  41. this.Load += new System.EventHandler(this.Form1_Load);  

  42. this.InputLanguageChanged += new 

  43. System.Windows.Forms.InputLanguageChangedEventHandler (this.ChangeInput);  

  44. this.ResumeLayout(false);  

(4)、插入下面代碼:

  1. private void Form1_Load(object sender, System.EventArgs e)  

  2. {  

  3. InputLanguageCollection ilc = InputLanguage.InstalledInputLanguages;  

  4. foreach ( InputLanguage il in ilc )  

  5. {  

  6. comboBox1.Items.Add( il.LayoutName );  

  7. }  

  8. comboBox1.SelectedIndex = InputLanguage.InstalledInputLanguages.IndexOf 
    ( InputLanguage.CurrentInputLanguage ) ;  

  9. }  

  10. private void comboBox1_SelectedIndexChanged(object sender, System.EventArgs e)  

  11. {  

  12. InputLanguage il = InputLanguage.
    InstalledInputLanguages[ comboBox1.SelectedIndex ];  

  13. InputLanguage.CurrentInputLanguage = il;  

  14. }  

  15. private void ChangeInput(object sender, 
    System.Windows.Forms.InputLanguageChangedEventArgs e)  

  16. {  

  17. InputLanguage il = e.InputLanguage ;  

  18. int i = InputLanguage.InstalledInputLanguages.IndexOf( il );  

  19. if( i >= 0 && i < InputLanguage.InstalledInputLanguages.Count )  

  20. {  

  21. comboBox1.SelectedIndex = i ;  

  22. }  

  23. }  

  24. private void But_Eixt_Click(object sender, System.EventArgs e)  

  25. {  

  26. Application.Exit();  

  27. }  

到此,相信大家對“C#控制輸入法怎么實現(xiàn)”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI