Программирование панели ввода с помощью класса PenInputPanel

[PenInputPanel был заменен на Microsoft.Ink.TextInput. Пожалуйста, обратитесь к программированию панели ввода текста.]

Описание использования объекта PenInputPanel для программирования панели ввода пк на уровне системы.

Панель ввода и объект PenInputPanel

В Microsoft Windows XP Tablet PC Edition версии 1.0 панель ввода компьютера на уровне системы предоставляет универсальный механизм для выполнения ввода текста на платформе Windows, но не предоставляет программный доступ. В пакете средств разработки программного обеспечения Windows XP Tablet PC Edition (SDK) версии 1.5 и более поздних версий объект PenInputPanel позволяет интегрировать средства ввода текста непосредственно в приложения и предоставить уровень управления, который ранее был недоступен. Начиная с windows XP Tablet PC Edition 2005, панель ввода на уровне системы была обновлена, чтобы включить встроенные функции ввода, предоставляемые объектом PenInputPanel и многое другое.

На следующем рисунке показана Панель ввода, отображаемая поверх образца формы автостраховой претензии .

панель ввода, отображаемая поверх формы для страховых заявлений на автомобиль

Панель ввода заменяет PenInputPanel, предоставляя те же функции ввода на месте любому приложению, работающему на windows XP Tablet PC Edition 2005 или более поздней версии, без необходимости дополнительного кода. Эта статья об использовании объекта PenInputPanel предоставляется для обеспечения обратной совместимости. Приложения, которые уже используют объект PenInputPanel, будут работать так же, за исключением того, что панель ввода будет отображаться вместо PenInputPanel при запуске приложения в Windows XP Tablet PC Edition 2005 или более поздней версии.

Если вы разрабатываете новое приложение для планшетного компьютера и хотите иметь решение для ввода пользователей на месте, панель ввода предоставляет это автоматически в Windows XP Tablet PC Edition 2005 или более поздней версии. Создать экземпляр объекта PenInputPanel не требуется.

Отключение панели ввода

Могут возникнуть случаи, когда требуется отключить панель ввода. Это можно сделать двумя способами. Это можно сделать программным способом или путем установки записи реестра, которая отключает панель ввода для всего приложения.

Отключение панели ввода программным способом

Чтобы отключить панель ввода программным способом, создайте экземпляр PenInputPanel и задайте для свойства autoShowзначение False.

using Microsoft.Ink;

// ...

private PenInputPanel theInputPanel;

// ...

private void Form1_Load(object sender, System.EventArgs e)
{
// Attach the Input Panel to a specific TextBox control.
theInputPanel = new PenInputPanel(textBox1);

// Disable the Input Panel for the TextBox.
theInputPanel.AutoShow = false;
}

Чтобы отключить входную панель для нескольких элементов управления в одном приложении, создайте экземпляр объекта PenInputPanel для каждого элемента управления и задайте для свойства AutoShowзначение False или проинициализируйте один PenInputPanel и перемещайте его из одного элемента управления в другой по мере изменения фокуса ввода. Дополнительные сведения об этих двух методах см. в разделе Пример PenInputPanel.

Отключение панели ввода через реестр

Вы можете задать запись реестра, чтобы отключить панель ввода для всего приложения. Однако это также отключит его для распространенных диалоговых окон, таких как диалоговое окно Открытие файла, диалоговое окно печать и диалоговое окно сохранение файла. Это может сделать взаимодействие с пользователем в приложении несогласованным с другими приложениями планшетного пк.

Если параметр DisableInPlace реестра равен нулю, в приложении не отображается пользовательский интерфейс панели ввода. Необходимо поместить раздел реестра DisableInPlace в HKEY_LOCAL_MACHINE\Software\Microsoft\TabletTip\. Затем добавьте новое значение реестра с помощью полного пути приложения, в котором нужно отключить панель ввода. В следующем примере запись реестра отключает панель ввода в приложении с именем MyApp:

[HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\WindowsNT\TabletTIP\DisableInPlace]``"C:\Program Files\My App\MyApp.exe"=dword:00000000

Если вы по-прежнему видите проблему в приложении после отключения пользовательского интерфейса панели ввода, может потребоваться отключить базовый фреймворк, который запрашивает у вашего приложения информацию о расположении курсора. Например, панель ввода может обнаружить ошибку в коде отслеживания курсора вашего приложения. Отключение запроса отслеживания курсора также предотвращает отображение пользовательского интерфейса панели ввода. Чтобы отключить фреймворк, задайте для раздела реестра EnableCaretTracking значение ноль. Найдите этот ключ в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\AppCompatFlags\CaretTracking\.

Заметка

Средства специальных возможностей и технологии распознавания речи в Windows XP также используют эту платформу, поэтому отключение запроса также отключает эти функции в приложении.

 

Панель ввода и веб-страницы

Чтобы использовать API на веб-странице, она должна функционировать в среде частичного доверия. Все члены класса PenInputPanel требуют полного доверия, кроме следующих:

Эти API-интерфейсы могут выполняться в среде с ограниченным доверием, такой как веб-страница, позволяя вам создать экземпляр объекта PenInputPanel, подключить его к элементу управления и отключить панель ввода для этого элемента управления. Дополнительные сведения см. в статье Программирование панели ввода с помощью класса PenInputPanel и рукописного ввода в Интернете.

Объект PenInputPanel

Остальная часть этого раздела описывает, как использовать объект PenInputPanel в приложениях с поддержкой планшетного компьютера. В частности, этот раздел относится к объекту PenInputPanel при обсуждении программного объекта, панели ввода пера при обращении к элементу пользовательского интерфейса и Панели ввода ПК (или Панели ввода) при обращении к глобальной панели ввода, обычно найденной на боковой стороне экрана планшетного ПК.

В следующих разделах описывается объект и пользовательский интерфейс PenInputPanel.