Envoyer un évènement KeyPress à un TextBox sur un formulaire non actif
mezzo_998
Messages postés4Date d'inscriptionlundi 12 juin 2006StatutMembreDernière intervention23 septembre 2006
-
22 sept. 2006 à 22:24
mezzo_998
Messages postés4Date d'inscriptionlundi 12 juin 2006StatutMembreDernière intervention23 septembre 2006
-
23 sept. 2006 à 17:43
Bonjour,
Je cherche à réaliser une application qui est une sorte d'émulation de Form.
Le serveur, sur lequel sont stockés les Forms, envoie au client les forms demandés sous forme de trame réseau. Le client (windows mobile) interprète ensuite les trames reçues pour créer le formulaire. Une fois les champs remplis une action déclenche l'envoi d'une trame vers le serveur comprenant la méthode de validation (clic sur bouton ou "Enter" dans un textbox). Le serveur doit ensuite reproduire l'action pour exécuter les bonnes méthodes liées à chaque évènement.
Mon problème concerne l'évènement KeyPress des textbox que je n'arrive pas à envoyer.
J'ai essayé de faire
<!-- BEGIN TEMPLATE: bbcode_code -->
myTextBox.Focus();
SendKeys.Send("{ENTER}");
<!-- END TEMPLATE: bbcode_code -->Mais celà ne marche pas car j'ai une exception me disant que l'application ne gère pas les messages windows : je pense que ça vient du fait que je ne fais jamais MyForm.Show() puisque sur le serveur je n'ai pas besoin d'afficher le formulaire.
MoDDiB
Messages postés546Date d'inscriptionmardi 26 novembre 2002StatutMembreDernière intervention 4 mai 20071 23 sept. 2006 à 13:52
Personnellement j'aurais tout émulé sur le serveur sans créer une seule form.
Etant donné qu'il s'agit d'un server cela évitera d'utiliser de la mémoire pour rien..
mezzo_998
Messages postés4Date d'inscriptionlundi 12 juin 2006StatutMembreDernière intervention23 septembre 2006 23 sept. 2006 à 14:26
Merci pour ta réponse mais en fait le but de cette "émulation" est double :
1/ Faire travailler le moins possible le client et stocker le code applicatif sur le serveur (mises à jour fréquentes prévues)
2/Faciliter le développement des nouveaux écrans (d'où l'intérêt de passer par les forms que l'on peux concevoir graphiquement très rapidement).
Même si en terme de mémoire ce n'est pas la meilleure méthode, il y a t il quand même une solution pour émuler mon évènement ?
MoDDiB
Messages postés546Date d'inscriptionmardi 26 novembre 2002StatutMembreDernière intervention 4 mai 20071 23 sept. 2006 à 15:21
Effectivement si il s'agit d'un gros projet et que les mises à jour sont fréquentes mieux vaut passer l=par les winforms.
Tu les sérialises pour les envoyer ?
Sinon pour ton problème je ne vois pas comment procéder mais je suis intéressé par la réponse :)
mezzo_998
Messages postés4Date d'inscriptionlundi 12 juin 2006StatutMembreDernière intervention23 septembre 2006 23 sept. 2006 à 17:43
Oui je sérialise les forms mais de façon "maison" pour que les trames soient plus courtes.
Si je ne trouve pas de solution pour déclencher ce modit évènement je pense que je passerai par une fonction du type
fonction (object sender)
{
if (sender.Equals(textBox1)
{
...
}
...
}
mais ça ne m'enchante pas du tout car ça force à sortir de la programmation habituelle du Visual Studio et ce n'est pas le but du projet.
Mais en informatique tout est possible donc je suis sûr qu'il doit y avoir une solution.