Поделиться через


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

[PenInputPanel заменено на Microsoft.Ink.TextInput. См. раздел Программирование панели ввода текста.]

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

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

В Microsoft Windows XP Tablet PC Edition версии 1.0 панель ввода на уровне системы предоставляет универсальный механизм для ввода текста на платформе Windows, но не предоставляет программный доступ. В пакете sdk (SDK) windows XP Tablet PC Edition версии 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 для каждого элемента управления и задайте для свойства Автопоказзначение False для каждого элемента управления или создайте экземпляр одного penInputPanel и переместите его из элемента управления в элемент управления при изменении фокуса ввода. Дополнительные сведения об этих двух методах см. в статье Пример PenInputPanel .

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

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

Если задать нулевое DisableInPlace значение для раздела реестра, пользовательский интерфейс панели ввода не будет отображаться в приложении. Раздел реестра необходимо поместить в DisableInPlaceHKEY_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 и пользовательский интерфейс.