2008-11-13 3 views
1

Dans l'application, il existe une boîte de dialogue dans laquelle seules les entrées numériques sont valides. Par conséquent, je voudrais définir la disposition du clavier numérique. Est-ce que quelqu'un sait comment simuler la pression des touches sur le clavier ou toute autre méthode pour changer la disposition du clavier?Modification de la disposition du clavier sous Windows Mobile

Merci!

+0

Le résultat peut être obtenu en envoyant un message avec les paramètres suivants: SendMessage (EM_SETINPUTMODE, 0, EIM_NUMBERS); –

+0

Courez-vous un smartphone? Quel appareil utilisez-vous? – MusiGenesis

+0

C'est un Pocket PC (HTC TyTN II) –

Répondre

2

Vous n'avez pas besoin.

Tout comme les fenêtres complètes, vous pouvez définir le contrôle d'édition comme une entrée numérique uniquement. Vous pouvez soit le faire manually ou dans l'éditeur de dialogue dans les propriétés pour le contrôle d'édition. Le SIP devrait afficher automatiquement le clavier numérique lorsque le contrôle d'édition numérique uniquement est mis au point.

0

Vous pouvez utiliser le InputModeEditor:

InputModeEditor.SetInputMode(textBox1,InputMode.Numeric); 
+0

c'est une application de code natif donc cela ne peut pas être fait de cette façon. –

0

Il y a une seule façon de faire cela (éditer: cela fait référence au SIP dans un autre Windows Mobile, donc je ne suis pas sûr que ce soit pertinent pour votre question), et cela implique de simuler un clic de souris sur le bouton 123. Ce n'est toutefois que la moitié du problème, car vous devez également savoir si le clavier est déjà en mode numérique ou non. La façon de procéder est de regarder un pixel près du coin supérieur gauche du clavier - si vous regardez comment fonctionne le bouton 123, vous verrez que c'est le texte du système sur le fond de Windows, puis inversé en mode numérique (de sorte que le le pixel sera la couleur du texte du système uniquement en mode numérique). Il y a encore un peu de bizarrerie que vous devez faire pour vous assurer que cela fonctionne sur tous les appareils (vous devez aussi dessiner un pixel sur le clavier).

Heureusement pour vous, j'ai un échantillon de code facile à utiliser qui fait tout cela. Malchanceux pour vous, c'est en C#, mais je pense que cela devrait au moins vous orienter dans la bonne direction.

Questions connexes