Dela via


Programmera indatapanelen med klassen PenInputPanel

[PenInputPanel har ersatts av Microsoft.Ink.TextInput. Se Programmering av textinmatningspanelen.]

Beskrivning av hur du använder PenInputPanel-objekt för att programmera indatapanelen för Tablet PC på systemnivå.

Indatapanelen jämfört med PenInputPanel-objektet

I Microsoft Windows XP Tablet PC Edition version 1.0 tillhandahåller inmatningspanelen på systemnivå en universell mekanism för att utföra textinmatning i Windows-plattformen, men den ger inte programmatisk åtkomst. I Windows XP Tablet PC Edition Software Development Kit (SDK) version 1.5 och senare gör PenInputPanel-objektet att du kan integrera textinmatningsverktyg direkt i dina program och tillhandahålla en kontrollnivå som inte tidigare var tillgänglig. Från och med Windows XP Tablet PC Edition 2005 har indatapanelen på systemnivå uppgraderats till att omfatta indatafunktionerna på plats som tillhandahålls av PenInputPanel-objektet med mera.

Följande bild visar inmatningspanelen som visas över provexemplet för ansökningsformulär för automatiska krav.

indatapanel som visas över det formulär som används för försäkringsanspråk för bil

Indatapanelen ersätter PenInputPanel- genom att tillhandahålla samma indatafunktion på plats till alla program som körs på Windows XP Tablet PC Edition 2005 eller senare utan att behöva ytterligare kod. Den här artikeln om hur du använder objektet PenInputPanel finns för bakåtkompatibilitet. Program som redan använder PenInputPanel-objektet fungerar på samma sätt förutom att indatapanelen visas i stället för PenInputPanel när programmet körs på Windows XP Tablet PC Edition 2005 eller senare.

Om du utvecklar ett nytt program för Tablet PC och vill ha en användarinmatningslösning på plats tillhandahåller indatapanelen detta automatiskt på Windows XP Tablet PC Edition 2005 eller senare. Du behöver inte instansiera objektet PenInputPanel.

Inaktivera indatapanelen

Det kan finnas tillfällen där du vill stänga av indatapanelen. Det finns två sätt att åstadkomma detta. Du kan göra detta programmatiskt eller genom att ange en registerpost som inaktiverar indatapanelen för hela programmet.

Avaktivera inmatningspanelen programmatiskt

Om du vill inaktivera indatapanelen programmatiskt, instansiera PenInputPanel och ställ in dess egenskap AutoShow till 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;
}

Om du vill inaktivera indatapanelen för flera kontroller i ett enda program instansierar du antingen ett PenInputPanel- objekt för varje kontroll och anger egenskapen AutoShowtill False för varje eller instansierar en enda PenInputPanel och flyttar den från kontroll till kontroll när indatafokus ändras. Mer information om dessa två tekniker finns i ämnet PenInputPanel Sample.

Inaktivera funktionen för indatapanelen via registret

Du kan ange en registerpost för att inaktivera indatapanelen för din hela applikation. Detta inaktiverar dock även för vanliga dialogrutor, till exempel dialogrutan Öppna fil, dialogrutan Skriv ut och dialogrutan Spara fil. Detta kan göra användarupplevelsen i ditt program inkonsekvent med andra Tablet PC-program.

Om du ställer in DisableInPlace registernyckeln på noll förhindrar du att användargränssnittet för indatapanelen visas i ett program. Du måste placera DisableInPlace registernyckeln på HKEY_LOCAL_MACHINE\Software\Microsoft\TabletTip\. Lägg sedan till ett nytt registervärde med hjälp av den fullständiga sökvägen för programmet där du vill inaktivera indatapanelen. Följande exempelregisterpost inaktiverar indatapanelen i ett program som heter MyApp:

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

Om du fortfarande ser ett problem i programmet efter att du har inaktiverat indatapanelens gränssnitt kan det vara nödvändigt att inaktivera det underliggande ramverket, som frågar ditt program om caret-positionen. Indatapanelen kan till exempel exponera en bugg i programmets caret tracking-kod. Om du inaktiverar caret tracking-frågan förhindrar du också att användargränssnittet för indatapanelen visas. Om du vill inaktivera ramverket anger du EnableCaretTracking registernyckeln till noll. Leta upp den här nyckeln på HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\AppCompatFlags\CaretTracking\.

Not

Hjälpmedelsverktyg och talteknik i Windows XP använder också det här ramverket, så om du inaktiverar frågan inaktiveras även dessa funktioner i ditt program.

 

Indatapanelen och webbsidorna

För att kunna använda ett API på en webbsida måste det fungera i en partiell förtroendemiljö. Alla PenInputPanel-klassmedlemmar kräver fullständigt förtroende förutom följande:

Dessa API:er fungerar i en partiell förtroendemiljö, till exempel en webbsida, så att du kan instansiera ett PenInputPanel-objekt, koppla det till en kontroll och inaktivera indatapanelen för den kontrollen. För mer information, se Programmera indatapanelen med hjälp av klassen PenInputPanel och Ink på webben.

PenInputPanel-objektet

Resten av det här avsnittet beskriver hur du använder PenInputPanel-objektet i dina Tablet PC-aktiverade program. Mer specifikt refererar det här avsnittet till PenInputPanel-objektet när du diskuterar programmeringsobjektet, penninmatningspanelen när du refererar till användargränssnittselementet och DATORNs indatapanel (eller indatapanel) när du refererar till den globala indatapanelen som vanligtvis finns på sidan av Tablet PC-skärmen.

I följande avsnitt beskrivs PenInputPanel-objektet och användargränssnittet.