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

线程安全

此类型的任何公共 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 组件

如何:使用 InputPanel 组件