共用方式為


InputPanel.InputMethodCollection 類別

提供 Pocket PC 上安裝之所有輸入法軟體的存取。這個類別無法被繼承。

命名空間:  Microsoft.WindowsCE.Forms
組件:  Microsoft.WindowsCE.Forms (在 Microsoft.WindowsCE.Forms.dll 中)

語法

'宣告
Public NotInheritable Class InputMethodCollection _
    Implements IList, ICollection, IEnumerable
'用途
Dim instance As InputPanel.InputMethodCollection
public sealed class InputMethodCollection : IList, 
    ICollection, IEnumerable
public ref class InputMethodCollection sealed : IList, 
    ICollection, IEnumerable
public final class InputMethodCollection implements IList, ICollection, IEnumerable

備註

此集合能存取可在 Pocket PC 的螢幕小鍵盤 (SIP) 中進行文字和字元輸入的方法。通用的輸入法包括:

  • 鍵盤

    點選 SIP 鍵盤或硬體鍵盤配件上的字元。

  • 字母辨識器

    在 SIP 中繪製字母和數字。當使用者暫停時,會自動將寫入項目轉換成輸入的文字,並顯示在插入點處。

  • 區塊辨識器

    在 SIP 中繪製預先決定的筆劃,稍後可呈現為特定字元。此輸入法與 Graffiti 模擬類似。

可安裝其他輸入法,以支援其他語言 (例如日文和俄文)。在裝置上安裝新的輸入法後,系統會將該輸入法併入輸入法集合中。

使用 InputMethods 屬性可取得 InputPanel.InputMethodCollection。

範例

下列程式碼範例會列舉 InputPanel.InputMethodCollection,並在清單方塊中列出可用的輸入法。使用者選取輸入法後,便會將 CurrentInputMethod 屬性設定為該輸入法。輸入面板的 Enabled 屬性是設定為 true,因此會為使用者顯示鍵盤和其他輸入區域。

Imports System
Imports System.Windows.Forms
Imports Microsoft.WindowsCE.Forms
Imports Microsoft.VisualBasic

Public Class Form1
   Inherits System.Windows.Forms.Form

   Private WithEvents ListBox1 As System.Windows.Forms.ListBox
   Private TextBox1 As System.Windows.Forms.TextBox

   Private InputPanel1 As Microsoft.WindowsCE.Forms.InputPanel


   Public Sub New()
      InitializeComponent()

      'Display OK Button for closing the application.
      Me.MinimizeBox = False

      MessageBox.Show(InputPanel1.InputMethods.Count.ToString())

      ' Display the input panel.
      InputPanel1.Enabled = True

      ' Get the input methods to populate the list box.
      ' Select the first method.
      GetInputMethods()
      ListBox1.SelectedIndex = 0

      ' Set the focus on the text box to render input from the input panel.
      TextBox1.Focus()
   End Sub

   Protected Overrides Sub Dispose(disposing As Boolean)
      MyBase.Dispose(disposing)
   End Sub

   Private Sub InitializeComponent()
      Me.InputPanel1 = New Microsoft.WindowsCE.Forms.InputPanel
      Me.ListBox1 = New System.Windows.Forms.ListBox
      Me.TextBox1 = New System.Windows.Forms.TextBox
      '
      ' ListBox1
      '
      Me.ListBox1.Location = New System.Drawing.Point(8, 40)
      Me.ListBox1.Size = New System.Drawing.Size(200, 80)
      '
      ' TextBox1
      '
      Me.TextBox1.Location = New System.Drawing.Point(8, 140)
      Me.TextBox1.Size = New System.Drawing.Size(200, 200)
      '
      ' Form1
      '
      Me.Controls.Add(ListBox1)
      Me.Controls.Add(TextBox1)
      Me.Text = "Input Methods"
   End Sub


   Shared Sub Main()
      Application.Run(New Form1())
   End Sub

  Private Sub GetInputMethods()
      Me.ListBox1.Items.Clear()

      ' Get the InputMethods collection and
      ' add each method to the list box.
      Dim im As InputMethod
      For Each im In  InputPanel1.InputMethods
         Me.ListBox1.Items.Add(im.Name)
      Next im
  End Sub

   ' This event handler iterates through the
   ' InputMethodCollection and sets the input method
   ' to the input method selected in the list box.
   ' When a member of the collection is the
   ' same the selected value in the list box, that
   ' method is set to the current input method.
   Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged

      ' Get the selected input method from the list box.
      Dim strIM As String
      strIM = ListBox1.SelectedItem.ToString()

      ' Iterate through the input method collection.
      ' When there is a match with the input method
      ' selected in the list box, set the
      ' CurrentInputMethod property to the selected method.
      Dim im As InputMethod
      For Each im In  InputPanel1.InputMethods
         If im.Name = strIM Then
            ' Change the input method.
            InputPanel1.CurrentInputMethod = im
         End If
      Next im
   End Sub

End Class 

' Note that the InputMethodCollection
' can also be enumerated as follows:
'  InputPanel.InputMethodCollection imc;
'  imc = InputPanel1.InputMethods;
'  for (int i = 0; i < imc.Count; i++)
'  {
'   if (imc[i].Name == strIM)
'   {
'    // Change input method.
'    InputPanel1.CurrentInputMethod = imc[i];
'
'    break;
'   }
'  }
using System;
using System.Windows.Forms;
using Microsoft.WindowsCE.Forms;

namespace InputMethodsTest
{
public class Form1 : System.Windows.Forms.Form
{
 private System.Windows.Forms.MainMenu mainMenu1;
 private System.Windows.Forms.ListBox listBox1;
 private System.Windows.Forms.TextBox textBox1;

 private Microsoft.WindowsCE.Forms.InputPanel ip;

 public Form1()
 {
  InitializeComponent();

  //Display OK Button for closing the application.
  this.MinimizeBox = false;

  MessageBox.Show(ip.InputMethods.Count.ToString());

  // Display the input panel.
  ip.Enabled = true;

  // Get the input methods to populate the list box.
  // Select the first method.
  GetInputMethods();
  listBox1.SelectedIndex = 0;

  // Set the focus on the text box to render input from the input panel.
  textBox1.Focus();

 }
 protected override void Dispose( bool disposing )
 {
  base.Dispose( disposing );
 }
 #region Windows Form Designer generated code

 private void InitializeComponent()
 {
  this.mainMenu1 = new System.Windows.Forms.MainMenu();
  this.ip = new InputPanel();
  this.listBox1 = new ListBox();
  this.textBox1 = new TextBox();
  //
  // listBox1
  //
  this.listBox1.Location = new System.Drawing.Point(8, 40);
  this.listBox1.Size = new System.Drawing.Size(200, 80);
  this.listBox1.SelectedIndexChanged += new System.EventHandler(this.listBox1_SelectedIndexChanged);
  //
  // textBox1
  //
  this.textBox1.Location = new System.Drawing.Point(8, 140);
  this.textBox1.Size = new System.Drawing.Size(200, 200);
  //
  // Form1
  //
  this.Controls.Add(this.listBox1);
  this.Controls.Add(this.textBox1);
  this.Menu = this.mainMenu1;
  this.Text = "Input Methods";
 }
 #endregion

 static void Main()
 {
  Application.Run(new Form1());
 }

 private void GetInputMethods()
 {
  this.listBox1.Items.Clear();


 // Get the InputMethods collection and
 // add each method to the list box.
 foreach (InputMethod im in ip.InputMethods)
 {
  this.listBox1.Items.Add(im.Name);
 }
 }

 // This event handler iterates through the
 // InputMethodCollection and sets the input method
 // to the input method selected in the list box.
 // When a member of the collection is the
 // same the selected value in the list box, that
 // method is set to the current input method.
 private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
 {

 // Get the selected input method from the list box.
 string strIM;
 strIM = listBox1.SelectedItem.ToString();

 // Iterate through the input method collection.
 // When there is a match with the input method
 // selected in the list box, set the
 // CurrentInputMethod property to the selected method.
 foreach (InputMethod im in ip.InputMethods)
 {
  if (im.Name == strIM)
   // Change the input method.
   ip.CurrentInputMethod = im;
 }

 // Note that the InputMethodCollection
 // can also be enumerated as follows:
 //  InputPanel.InputMethodCollection imc;
 //  imc = ip.InputMethods;
 //  for (int i = 0; i < imc.Count; i++)
 //  {
 //   if (imc[i].Name == strIM)
 //   {
 //    // Change input method.
 //    ip.CurrentInputMethod = imc[i];
 //
 //    break;
 //   }
 //  }

 }
}
}

繼承階層架構

System.Object
  Microsoft.WindowsCE.Forms.InputPanel.InputMethodCollection

執行緒安全

這個型別的任何 Public static (在 Visual Basic 中為 Shared) 成員都具備執行緒安全。並非所有的執行個體成員都是安全執行緒。

平台

Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC

.NET Framework 和 .NET Compact Framework 並不支援各種平台的所有版本。如需支援平台版本的相關資訊,請參閱 .NET Framework 系統需求

版本資訊

.NET Compact Framework

支援版本:3.5、2.0

請參閱

參考

InputPanel.InputMethodCollection 成員

Microsoft.WindowsCE.Forms 命名空間

其他資源

InputPanel 元件

HOW TO:使用 InputPanel 元件