Comment savoir si un controle est editable ?

Lepripri Messages postés 12 Date d'inscription mercredi 28 janvier 2004 Statut Membre Dernière intervention 20 juin 2006 - 4 janv. 2006 à 09:49
Lepripri Messages postés 12 Date d'inscription mercredi 28 janvier 2004 Statut Membre Dernière intervention 20 juin 2006 - 4 janv. 2006 à 15:47
Bonjour.
Est-il possible de savoir si un controle sur lequel on aurait cliqué est editable ou non ? Et par la même occasion, est-il possible de récuperé le contenu de ce controle graphique (contenu d'un textbox par ex) ?

7 réponses

MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
4 janv. 2006 à 10:03
Bonjour,

Dans le cas d'un Textbox, tu a une propriété ReadOnly qui te permet de savoir si le champ est en lecture seule ou non.
Et pour recuperer son texte, tu as simplement a récuperer la valeur de la propriété Text

J'espere que c'etait bien ta question

Mx
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
4 janv. 2006 à 10:10
pour savoir si un contrôle est editable, tu peux tester s'il hérite de TextBoxBase (textbox, combo, numericupdown...) ou de RichTextBox

genre => tonControl is TextBoxBase || tonControl is RichTextBox

pour récupérer le contenu :


System.Reflection.
PropertyInfo pi = tonControl.GetType().GetProperty(
"Text");

string tonText = (
string)pi.GetValue(tonControl,
null);

Sébastien FERRAND
[MVP C#]
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
4 janv. 2006 à 10:12
J'avais pas du comprendre la question.
Me disais aussi que ca semblait trop simple.

Le ridicule ne tue pas

Mx
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
4 janv. 2006 à 10:16
heureusement ^^

Sébastien FERRAND
[MVP C#]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Lepripri Messages postés 12 Date d'inscription mercredi 28 janvier 2004 Statut Membre Dernière intervention 20 juin 2006
4 janv. 2006 à 10:28
Je suis desolé je n'ai pas été suffisamment explicite dans ma question. En fait je parlais d'un clique sur une application quelconque lol. Donc je n'ai pas accès directement au controle. Il faut que je passe par la dll user32 pour obtenir tout ca je pense.
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
4 janv. 2006 à 11:56
Exactement, il va falloir passer par les API.
Pour recuperer le Text d'un TextBox contenu dans une fenetre, il faudra

-> recuperer la liste des fenetres via EnumWindows
-> recuperer les controls des fenetres via EnumChildWindows
-> identifier le textbox
-> recuperer le texte du TextBox via GetWindowText

Ca devrait fonctionner. (Mais y'a peut-etre un moyen plus simple)

Mx
0
Lepripri Messages postés 12 Date d'inscription mercredi 28 janvier 2004 Statut Membre Dernière intervention 20 juin 2006
4 janv. 2006 à 15:47
Tout a fait, pour le moment je recupère le controle de la fenetre puis celui des enfants et j'arrive a récuperer le contenu texte (GetControlText User32.dll) de chaque enfant mais le problème c'est que je n'arrive pas à identifier le textbox ou un autre champs editable. Je cherche une propriété permettant de savoir si le controle est editable ou non mais la je coince vraiment ... Je suis passé par GetClassName du user32.dll mais le truc c'est que ca me dit pas vraiment si c'est un controle editable ou non. Par exemple qd je clique sur un document Word je me prend un "_Wwf". Je me dit que par l'API, je dois bien pouvoir savoir si le controle peut etre edité ou non ...
0
Rejoignez-nous