Практическое руководство. Установка режимов ввода смартфона
Обновлен: Ноябрь 2007
Для поля TextBox в приложении смартфона можно установить режим ввода ABC, T9 и числовые режимы ввода, определенные в перечислении InputMode. Класс InputModeEditor обеспечивает доступ к методам ввода текста смартфона.
Для текстовых полей, предназначенных для алфавитных символов, предпочтительным значением режима ввода является AlphaCurrent. Этот режим соответствует режиму, который выбирается на смартфоне путем удержания клавиши звездочки ("*").
С помощью объекта InputModeEditor нельзя явно изменять параметры регистра для режимов ввода алфавитных символов. Тем не менее, используемый режим ввода алфавитных символов (T9 или ABC) сохраняется режимом ввода AlphaCurrent при установке с помощью клавиши звездочки.
В смартфоне можно использовать только редактор InputModeEditor, при этом только для элемента управления TextBox.
Пример
В следующем примере кода показывается задание режима ввода в трех текстовых полях: Name, Phone и City. Для текстовых полей Name и City устанавливается режим ввода AlphaCurrent, а для текстового поля Phone устанавливается числовой режим ввода.
Чтобы увидеть, как работает поле AlphaCurrent, выполните следующие действия:
Выделите содержимое текстового поля Name, удерживайте клавишу звездочки и введите текст, используя режим ввода T9 или ABC.
Введите текст в текстовом поле City. Обратите внимание, что режим ввода такой же, как и в текстовом поле Name.
Imports System
Imports System.Windows.Forms
Imports Microsoft.WindowsCE.Forms
Public Class Form1
Inherits System.Windows.Forms.Form
Private mainMenu1 As System.Windows.Forms.MainMenu
Private mi1 As System.Windows.Forms.MenuItem
' Text box for name.
Private textBox1 As System.Windows.Forms.TextBox
' Text box for phone number.
Private textBox2 As System.Windows.Forms.TextBox
' Text box for city.
Private textBox3 As System.Windows.Forms.TextBox
' Labels for name, phone, and city
Private label1 As System.Windows.Forms.Label
Private label2 As System.Windows.Forms.Label
Private label3 As System.Windows.Forms.Label
Public Sub New()
InitializeComponent()
' Add a menu to close the application.
mi1 = New MenuItem()
mainMenu1.MenuItems.Add(mi1)
AddHandler mi1.Click, AddressOf mi1_Click
mi1.Text = "Done"
' Set input mode for name text box to AlphaCurrent.
InputModeEditor.SetInputMode(textBox1, InputMode.AlphaCurrent)
' Set input mode for phone number text box to Numeric.
InputModeEditor.SetInputMode(textBox2, InputMode.Numeric)
' Set input mode for city text box to AlphaCurrent.
InputModeEditor.SetInputMode(textBox3, InputMode.AlphaCurrent)
End Sub
Protected Overrides Sub Dispose(disposing As Boolean)
MyBase.Dispose(disposing)
End Sub
Private Sub InitializeComponent()
Me.mainMenu1 = New System.Windows.Forms.MainMenu()
Me.mainMenu1 = New System.Windows.Forms.MainMenu()
Me.textBox1 = New System.Windows.Forms.TextBox()
Me.textBox2 = New System.Windows.Forms.TextBox()
Me.textBox3 = New System.Windows.Forms.TextBox()
Me.label1 = New System.Windows.Forms.Label()
Me.label2 = New System.Windows.Forms.Label()
Me.label3 = New System.Windows.Forms.Label()
'
' textBox1
'
Me.textBox1.Location = New System.Drawing.Point(64, 8)
Me.textBox1.Size = New System.Drawing.Size(104, 25)
Me.textBox1.Text = ""
'
' textBox2
'
Me.textBox2.Location = New System.Drawing.Point(64, 40)
Me.textBox2.Size = New System.Drawing.Size(104, 25)
Me.textBox2.Text = ""
'
' textBox3
'
Me.textBox3.Location = New System.Drawing.Point(64, 72)
Me.textBox3.Size = New System.Drawing.Size(104, 25)
Me.textBox3.Text = ""
'
' label1
'
Me.label1.Location = New System.Drawing.Point(8, 8)
Me.label1.Size = New System.Drawing.Size(56, 22)
Me.label1.Text = "Name"
'
' label2
'
Me.label2.Location = New System.Drawing.Point(8, 40)
Me.label2.Size = New System.Drawing.Size(56, 22)
Me.label2.Text = "Phone"
'
' label3
'
Me.label3.Location = New System.Drawing.Point(8, 72)
Me.label3.Size = New System.Drawing.Size(56, 22)
Me.label3.Text = "City"
'
' Form1
'
Me.Controls.Add(textBox1)
Me.Controls.Add(textBox2)
Me.Controls.Add(textBox3)
Me.Controls.Add(label1)
Me.Controls.Add(label2)
Me.Controls.Add(label3)
Me.Menu = Me.mainMenu1
Me.Text = "Input Mode Demo"
End Sub
Shared Sub Main()
Application.Run(New Form1())
End Sub
Private Sub mi1_Click(sender As Object, e As EventArgs)
Me.Close()
End Sub
End Class
using System;
using System.Drawing;
using System.Collections;
using System.Windows.Forms;
using Microsoft.WindowsCE.Forms;
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.MainMenu mainMenu1;
private System.Windows.Forms.MenuItem mi1;
// Text box for name.
private System.Windows.Forms.TextBox textBox1;
// Text box for phone number.
private System.Windows.Forms.TextBox textBox2;
// Text box for city.
private System.Windows.Forms.TextBox textBox3;
// Labels for name, phone, and city
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
public Form1()
{
InitializeComponent();
// Add a menu to close the application.
mi1 = new MenuItem();
mainMenu1.MenuItems.Add(mi1);
mi1.Click +=new EventHandler(mi1_Click);
mi1.Text = "Done";
// Set input mode for name text box to AlphaCurrent.
InputModeEditor.SetInputMode(textBox1, InputMode.AlphaCurrent);
// Set input mode for phone number text box to Numeric.
InputModeEditor.SetInputMode(textBox2, InputMode.Numeric);
// Set input mode for city text box to AlphaCurrent.
InputModeEditor.SetInputMode(textBox3, InputMode.AlphaCurrent);
}
protected override void Dispose( bool disposing )
{
base.Dispose( disposing );
}
private void InitializeComponent()
{
this.mainMenu1 = new System.Windows.Forms.MainMenu();
this.mainMenu1 = new System.Windows.Forms.MainMenu();
this.textBox1 = new System.Windows.Forms.TextBox();
this.textBox2 = new System.Windows.Forms.TextBox();
this.textBox3 = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(64, 8);
this.textBox1.Size = new System.Drawing.Size(104, 25);
this.textBox1.Text = "";
//
// textBox2
//
this.textBox2.Location = new System.Drawing.Point(64, 40);
this.textBox2.Size = new System.Drawing.Size(104, 25);
this.textBox2.Text = "";
//
// textBox3
//
this.textBox3.Location = new System.Drawing.Point(64, 72);
this.textBox3.Size = new System.Drawing.Size(104, 25);
this.textBox3.Text = "";
//
// label1
//
this.label1.Location = new System.Drawing.Point(8, 8);
this.label1.Size = new System.Drawing.Size(56, 22);
this.label1.Text = "Name";
//
// label2
//
this.label2.Location = new System.Drawing.Point(8, 40);
this.label2.Size = new System.Drawing.Size(56, 22);
this.label2.Text = "Phone";
//
// label3
//
this.label3.Location = new System.Drawing.Point(8, 72);
this.label3.Size = new System.Drawing.Size(56, 22);
this.label3.Text = "City";
//
// Form1
//
this.Controls.Add(this.textBox1);
this.Controls.Add(this.textBox2);
this.Controls.Add(this.textBox3);
this.Controls.Add(this.label1);
this.Controls.Add(this.label2);
this.Controls.Add(this.label3);
this.Menu = this.mainMenu1;
this.Text = "Input Mode Demo";
}
static void Main()
{
Application.Run(new Form1());
}
private void mi1_Click(object sender, EventArgs e)
{
this.Close();
}
}
Компиляция кода
Для этого примера требуются ссылки на следующие пространства имен:
См. также
Другие ресурсы
Разработка приложений для смартфонов и платформа .NET Compact Framework