En Visual Basic Expresse 2010, Quid TexBox
Fermé
luclochtmans
Messages postés
9
Date d'inscription
lundi 24 juin 2019
Statut
Membre
Dernière intervention
25 avril 2021
-
Modifié le 24 juin 2019 à 22:01
Utilisateur anonyme - 28 juin 2019 à 17:55
Utilisateur anonyme - 28 juin 2019 à 17:55
A voir également:
- En Visual Basic Expresse 2010, Quid TexBox
- Visual basic - Télécharger - Langages
- Microsoft 365 basic - Accueil - Microsoft Office
- Microsoft visual c++ runtime - Guide
- Visual petanque - Télécharger - Sport
- Visual paradigm - Télécharger - Gestion de données
7 réponses
Utilisateur anonyme
24 juin 2019 à 21:55
24 juin 2019 à 21:55
Bonsoir
La touche Tab transfert le focus à un autre contrôle, tu peux donc utiliser l'évènement LostFocus.
Pour la touche Entré, il faut se servir de l'évènement Keypress (éventuellement KeyDown ou KeyUp), vérifier quelle touche est tapée et réagir à la touche Entré.
Par contre, ce n'est peut-être pas la solution la plus ergonomique.
Je crois comprendre que tu attends des réponses prédéfinies, qu'elles soient fixes (c'est toujours 1, 17 ou 32), issues d'une "base de données" évolutives ou être le résultat d'algorithmes.
Dans ce cas un combobox est adapté.
Oui, si tu pars sur cette idée, tu n'y arriveras pas. Nous avons sur les forums des codeurs qui ont commencé plus âgés que toi et brillamment réussi.
Mais, ils ont partis avec un esprit positif, et n'ont pas mis la charrue avant les boeufs.
Et vue ta question, je pense que toi si.
Passer quelques jours à apprendre quelques bases te seraient bien plus bénéfique que te lancer bille en tête dans ton projet quitte à aller sur une mauvaise piste.
Voici, un bon cours pour débuter en VB.Net https://plasserre.developpez.com/cours/vb-net/ même si l'auteur considère la programmation objet comme un effet de mode, alors que c'est l'essence des langages .Net .
La touche Tab transfert le focus à un autre contrôle, tu peux donc utiliser l'évènement LostFocus.
Pour la touche Entré, il faut se servir de l'évènement Keypress (éventuellement KeyDown ou KeyUp), vérifier quelle touche est tapée et réagir à la touche Entré.
Par contre, ce n'est peut-être pas la solution la plus ergonomique.
Je crois comprendre que tu attends des réponses prédéfinies, qu'elles soient fixes (c'est toujours 1, 17 ou 32), issues d'une "base de données" évolutives ou être le résultat d'algorithmes.
Dans ce cas un combobox est adapté.
Je suis conscient que je devrais probablement et cela est même certain faire appel à un spécialiste pour finaliser ce projet,
Oui, si tu pars sur cette idée, tu n'y arriveras pas. Nous avons sur les forums des codeurs qui ont commencé plus âgés que toi et brillamment réussi.
Mais, ils ont partis avec un esprit positif, et n'ont pas mis la charrue avant les boeufs.
Et vue ta question, je pense que toi si.
Passer quelques jours à apprendre quelques bases te seraient bien plus bénéfique que te lancer bille en tête dans ton projet quitte à aller sur une mauvaise piste.
Voici, un bon cours pour débuter en VB.Net https://plasserre.developpez.com/cours/vb-net/ même si l'auteur considère la programmation objet comme un effet de mode, alors que c'est l'essence des langages .Net .
luclochtmans
Messages postés
9
Date d'inscription
lundi 24 juin 2019
Statut
Membre
Dernière intervention
25 avril 2021
25 juin 2019 à 09:59
25 juin 2019 à 09:59
Bonjour " Whismeril "
En premier merci pour la réponse et surtout pour le lien vers un cours VB.Net, que j'en suis convaincu va me servir et me permettre de trouver certaines réponses à mes interrogations.
Je pense que mon précédent courriel était un rien confus et c'est je pense que ma demande n'à pas été correctement comprise, mais tout d'abord : NON je ne met pas les bœufs devant la charrue et je ne part pas avec dans l'esprit l'impossibilité de réécrire ce petit programme.
Mais ayant gardé des séquelle ( mémoire, réflexion ... ) de mon récent AVC, j'ai voulu exprimer le fait qu'un spécialiste sera le bien venu afin de me corriger et de m'aider.
Ceci étant dit voici ce que j'ai essayer d'expliquer et avoir en réponse la ou les lignes programmation à placer ou a remplacer. Donc voici un petit schéma:
Dans ma fenêtre de saisie j'ai donc
plusieurs Label (Texte explication sur la réponse à donner ) en regard un TextBox pour recevoir l'info
cette première partie ne me pose pas de souci et est donc OK
Mais en dernier j'ai à nouveau un Label ( avec le texte " Donnez le Type de GPS Utilisé " ) en regard un TextBox qui lui va recevoir la réponse ( Qui sera selon de longueur Variable )
C'est donc à ce niveau que j'ai le souci.
En effet j'arrive bien à Obtenir ce que je veux et cela s'affiche bien au bon endroit
MAIS LE PROBLÈME :
Lorsque je veux introduire la réponse en Tapant la toute première Lettre dans La TextBox cela déclenche immédiatement la procédure de calcul et de composition de la réponse.
donc sans m'avoir permis d'introduire une réponse complète.
J'ai tenté plusieurs Options Mais sans succès : Voici le contenu de la TextBox donc où est l'erreur0
Private Sub TEX_GPS_TYPE_TextChanged(sender As System.Object, e As System.EventArgs) Handles TEX_GPS_TYPE.TextChanged
' DEVRAIT ATTENDRE L'APPUI SUR ENTER AVANT D'EXÉCUTER LA RECHERCHE LATITUDE / LONGITUDE
If TESTE <> ChrW(13) Then
' PHASE DE RECHERCHE DE LA lATITUDE - LONGITUDE
' GPS.CheckState = CheckState.Unchecked
' TEX_CM_LONGI.TabStop = True
MLAT = TEX_REF_LATI.Text
MsgBox("La Latitude donnée " & MLAT)
MLONG = TEX_REF_LONGI.Text
MsgBox("La Longitude donnée " & MLONG)
MLAT_1 = (MLAT.Substring(0, 2))
MsgBox("le premier couple de caractères = " & MLAT_1)
MLAT_2 = (MLAT.Substring(2, 1))
MsgBox("le second couple de caractères = " & MLAT_2)
MLAT_3 = (MLAT.Substring(3, 6))
MsgBox("le troisième couple de caractères = " & MLAT_3)
MLONG_1 = (MLONG.Substring(0, 1))
MsgBox("le premier couple de caractères = " & MLONG_1)
MLONG_2 = (MLONG.Substring(1, 1))
MsgBox("le second couple de caractères = " & MLONG_2)
MLONG_3 = (MLONG.Substring(2, 6))
MsgBox("le troisième couple de caractères = " & MLONG_3)
MLATR = Trim(LTrim(MLAT_1)) & Chr(176) & Trim(LTrim(MLAT_3))
MsgBox(MLATR)
MLONGR = Trim(LTrim(MLONG_1)) & Chr(176) & Trim(LTrim(MLONG_3))
MsgBox(MLONGR)
INFO_SITU = Trim(LTrim(MLATR)) & " de Latitude " & " et " & Trim(LTrim(MLONGR)) & " de Longitude "
TEX_COORD.Text = INFO_SITU
MsgBox(TEX_COORD.Text)
Else
' TEX_GPS_TYPE.Text = Trim(LTrim(TEX_GPS_TYPE.Text))
' MsgBox("Le type de GPS est " & TEX_GPS_TYPE.Text)
' TEX_GPS_TYPE.Text = Trim(LTrim(TEX_GPS_TYPE.Text)) + ""
MsgBox("Le type de GPS est " & TEX_GPS_TYPE.Text)
TESTE = Len(TEX_GPS_TYPE.Text)
MsgBox("TESTE est égal à " & TESTE)
End If
End Sub
En premier merci pour la réponse et surtout pour le lien vers un cours VB.Net, que j'en suis convaincu va me servir et me permettre de trouver certaines réponses à mes interrogations.
Je pense que mon précédent courriel était un rien confus et c'est je pense que ma demande n'à pas été correctement comprise, mais tout d'abord : NON je ne met pas les bœufs devant la charrue et je ne part pas avec dans l'esprit l'impossibilité de réécrire ce petit programme.
Mais ayant gardé des séquelle ( mémoire, réflexion ... ) de mon récent AVC, j'ai voulu exprimer le fait qu'un spécialiste sera le bien venu afin de me corriger et de m'aider.
Ceci étant dit voici ce que j'ai essayer d'expliquer et avoir en réponse la ou les lignes programmation à placer ou a remplacer. Donc voici un petit schéma:
Dans ma fenêtre de saisie j'ai donc
plusieurs Label (Texte explication sur la réponse à donner ) en regard un TextBox pour recevoir l'info
cette première partie ne me pose pas de souci et est donc OK
Mais en dernier j'ai à nouveau un Label ( avec le texte " Donnez le Type de GPS Utilisé " ) en regard un TextBox qui lui va recevoir la réponse ( Qui sera selon de longueur Variable )
C'est donc à ce niveau que j'ai le souci.
En effet j'arrive bien à Obtenir ce que je veux et cela s'affiche bien au bon endroit
MAIS LE PROBLÈME :
Lorsque je veux introduire la réponse en Tapant la toute première Lettre dans La TextBox cela déclenche immédiatement la procédure de calcul et de composition de la réponse.
donc sans m'avoir permis d'introduire une réponse complète.
J'ai tenté plusieurs Options Mais sans succès : Voici le contenu de la TextBox donc où est l'erreur0
Private Sub TEX_GPS_TYPE_TextChanged(sender As System.Object, e As System.EventArgs) Handles TEX_GPS_TYPE.TextChanged
' DEVRAIT ATTENDRE L'APPUI SUR ENTER AVANT D'EXÉCUTER LA RECHERCHE LATITUDE / LONGITUDE
If TESTE <> ChrW(13) Then
' PHASE DE RECHERCHE DE LA lATITUDE - LONGITUDE
' GPS.CheckState = CheckState.Unchecked
' TEX_CM_LONGI.TabStop = True
MLAT = TEX_REF_LATI.Text
MsgBox("La Latitude donnée " & MLAT)
MLONG = TEX_REF_LONGI.Text
MsgBox("La Longitude donnée " & MLONG)
MLAT_1 = (MLAT.Substring(0, 2))
MsgBox("le premier couple de caractères = " & MLAT_1)
MLAT_2 = (MLAT.Substring(2, 1))
MsgBox("le second couple de caractères = " & MLAT_2)
MLAT_3 = (MLAT.Substring(3, 6))
MsgBox("le troisième couple de caractères = " & MLAT_3)
MLONG_1 = (MLONG.Substring(0, 1))
MsgBox("le premier couple de caractères = " & MLONG_1)
MLONG_2 = (MLONG.Substring(1, 1))
MsgBox("le second couple de caractères = " & MLONG_2)
MLONG_3 = (MLONG.Substring(2, 6))
MsgBox("le troisième couple de caractères = " & MLONG_3)
MLATR = Trim(LTrim(MLAT_1)) & Chr(176) & Trim(LTrim(MLAT_3))
MsgBox(MLATR)
MLONGR = Trim(LTrim(MLONG_1)) & Chr(176) & Trim(LTrim(MLONG_3))
MsgBox(MLONGR)
INFO_SITU = Trim(LTrim(MLATR)) & " de Latitude " & " et " & Trim(LTrim(MLONGR)) & " de Longitude "
TEX_COORD.Text = INFO_SITU
MsgBox(TEX_COORD.Text)
Else
' TEX_GPS_TYPE.Text = Trim(LTrim(TEX_GPS_TYPE.Text))
' MsgBox("Le type de GPS est " & TEX_GPS_TYPE.Text)
' TEX_GPS_TYPE.Text = Trim(LTrim(TEX_GPS_TYPE.Text)) + ""
MsgBox("Le type de GPS est " & TEX_GPS_TYPE.Text)
TESTE = Len(TEX_GPS_TYPE.Text)
MsgBox("TESTE est égal à " & TESTE)
End If
End Sub
Utilisateur anonyme
26 juin 2019 à 00:57
26 juin 2019 à 00:57
Bonsoir,
J’avais bien compris, c’est pourquoi je t’ai parlé des événements lostfocus et keypress.
Il ne faut pas utliser l’événement textchanged
J’avais bien compris, c’est pourquoi je t’ai parlé des événements lostfocus et keypress.
Il ne faut pas utliser l’événement textchanged
Bonjour,
Avec un peu de retard, merci pour la confirmation et le rappel pour Lostfocus et Keypress.
Je n'ai pas encore trouver la solution avec ces deux possibilités mais dans l'attente j'ai donc détourné mon problème et j'obtiens ainsi le résultat voulu.
Donc pas de la TOP manière, mais l'important c'est que je peux maintenant progresser vers un fin plus qu'honorable d'autant que la finalité de ce petit programme est à mon usage personnel.
Et si de nature il devait être un jour mis à la disposition de tout un chacun,
AVANT il sera encore temps de le faire analyser par un programmeur plus confirmer.
Merci pour l'intérêt que vous avez porter à ma requête.
Amicalement
Luc
Avec un peu de retard, merci pour la confirmation et le rappel pour Lostfocus et Keypress.
Je n'ai pas encore trouver la solution avec ces deux possibilités mais dans l'attente j'ai donc détourné mon problème et j'obtiens ainsi le résultat voulu.
Donc pas de la TOP manière, mais l'important c'est que je peux maintenant progresser vers un fin plus qu'honorable d'autant que la finalité de ce petit programme est à mon usage personnel.
Et si de nature il devait être un jour mis à la disposition de tout un chacun,
AVANT il sera encore temps de le faire analyser par un programmeur plus confirmer.
Merci pour l'intérêt que vous avez porter à ma requête.
Amicalement
Luc
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
27 juin 2019 à 20:48
27 juin 2019 à 20:48
Alors si tu veux que ce soir la touche Entrée
Si tu veux que ce soit Tab
Je m'était trompé, LostFocus c'est en VBA, en VB.Net c'est Leave
Et si tu veux l'une ou l'autre
PS tu remarqueras que les codes que j'ai posté, sont
bref agréablement lisibles.
Merci à l'avenir de présenter tes codes de la même manière en suivant ce petit tuto
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Private Sub TextBox2_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox2.KeyPress If e.KeyChar = Convert.ToChar(13) Then 'ton code ici End If End Sub
Si tu veux que ce soit Tab
Private Sub TextBox2_Leave(sender As Object, e As EventArgs) Handles TextBox2.Leave 'ton code ici End Sub
Je m'était trompé, LostFocus c'est en VBA, en VB.Net c'est Leave
Et si tu veux l'une ou l'autre
Private Sub TextBox2_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox2.KeyPress If e.KeyChar = Convert.ToChar(13) Then VerifLucLothmans() End If End Sub Private Sub TextBox2_Leave(sender As Object, e As EventArgs) Handles TextBox2.Leave VerifLucLothmans() End Sub Private Sub VerifLucLothmans() 'ton code ici End Sub
PS tu remarqueras que les codes que j'ai posté, sont
- en couleur
- indentés
bref agréablement lisibles.
Merci à l'avenir de présenter tes codes de la même manière en suivant ce petit tuto
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Bonjour,
Je confirme donc la bonne réception de votre courriel, hé oui mon erreur à été de faire un simple copié collé de ma structure ce qui à eu pour effet de mettre tout en Noir et Blanc.
Je prends donc bonne note de votre remarque et promet pour les futurs échanges de mettre la couleur Ad Hoc et l'indentations.
Je vais donc tester ces 3 suggestions qui je suis convaincu vont alléger tant la programmation que la composition du formulaire de saisie.
Bien après une dernière petite demande, je vais vous laisser à vos propres occupations mais vous mémorise en cas de besoin ou conseils.
Voici, pour pouvoir évoluer dans la conversion de mon petit utilitaire FOX PRO en Visual Basic Express 2010 je voudrais savoir quel est la différence ( lu sur VB Net pour les Nul ) entre un tableau et en FoxPro une Base de données relationnelle.
Pour info en suivant ce qu'expliqué dans VB Net Pour les nul je suis arrivé à créer un tableau 9 colonnes et une seule ligne. Mais ne le retrouvant pas dans mes fichiers la question que je me pose :
Ce tableau ou se trouve t'il, peut on l'éditer hors programme et éventuellement est il possible de réutiliser mes bases de données ( Format DBase ) avec Visual Basic.
Voilà je pense qu'informé sur ce dernier point je serait remis sur les rails et pourrait plus sereinement poursuivre ma petite aventure de réécriture.
encore une fois un grand merci pour votre aide
Amicalement
Luc
Je confirme donc la bonne réception de votre courriel, hé oui mon erreur à été de faire un simple copié collé de ma structure ce qui à eu pour effet de mettre tout en Noir et Blanc.
Je prends donc bonne note de votre remarque et promet pour les futurs échanges de mettre la couleur Ad Hoc et l'indentations.
Je vais donc tester ces 3 suggestions qui je suis convaincu vont alléger tant la programmation que la composition du formulaire de saisie.
Bien après une dernière petite demande, je vais vous laisser à vos propres occupations mais vous mémorise en cas de besoin ou conseils.
Voici, pour pouvoir évoluer dans la conversion de mon petit utilitaire FOX PRO en Visual Basic Express 2010 je voudrais savoir quel est la différence ( lu sur VB Net pour les Nul ) entre un tableau et en FoxPro une Base de données relationnelle.
Pour info en suivant ce qu'expliqué dans VB Net Pour les nul je suis arrivé à créer un tableau 9 colonnes et une seule ligne. Mais ne le retrouvant pas dans mes fichiers la question que je me pose :
Ce tableau ou se trouve t'il, peut on l'éditer hors programme et éventuellement est il possible de réutiliser mes bases de données ( Format DBase ) avec Visual Basic.
Voilà je pense qu'informé sur ce dernier point je serait remis sur les rails et pourrait plus sereinement poursuivre ma petite aventure de réécriture.
encore une fois un grand merci pour votre aide
Amicalement
Luc
Utilisateur anonyme
28 juin 2019 à 17:55
28 juin 2019 à 17:55
entre un tableau et en FoxPro une Base de données relationnelle.
Ça n'a rien à voir.
Une base de données est un fichier externe à l'application dans lequel sont stockés des données.
Cela peut-être un simple fichier texte (csv, tabulé, xml json, etc...), un fichier plus évolué (excel, etc...) ou un SGBD (Système de Gestion de Base de Données) (sql server, access, sqlite etc....)
DBase rentre dans ce dernier type, il me semble.
Le qualificatif relationnel signifie qu'il peut y avoir des relations entre différentes tables de la base de données.
Une table c'est un peu comme un "sous fichier" ou une feuille dans excel, dans laquelle sont stockées des données d'un thème.
Par exemple, pour une basse de données client, il peut y avoir une table Villes, chaque ville ayant, un nom et un code postal et un code commune
Dans la table Clients, il n'y a que le champ CodeCommune, en lien avec la table Villes, ainsi on stocke un seul int dans le client et pas une string, qui pourrait être mal saisie et utiliser plus d'espace et 2 int.
La relation entre les tables permet de connaitre la ville en fonction du code commune.
Par exemple si tu as 3 clients à Longeville-Les-Metz, tu stockes 3 fois 57412 au lieu de 3 fois 57050 Longeville-Les-Metz. Au final, tu gagnes de la place.
Un tableau est une collection de données chargées dans ton application.
On peut imaginer un tableau à 1 dimension comme une suite de "cases" les unes après les autres.
Dans chacune des ces cases, il y a une donnée du type prédéfini pour le tableau. Un tableau de 100 int contiendra 100 valeurs entières.
Un tableau à 2 dimensions peut-être imaginer comme plusieurs lignes de cases, toutes de la même tailles.
Un tableau à 3 dimension, comme une sorte de cube.
Un tableau de tableaux, comme des colonnes de tailles différentes les une à coté des autres.
Bien qu'on puisse créer des configurations très complexes, le tableau reste une collection "primitive", on l'a crée tout au début de la programmation.
En voici les principaux défaut, il a une taille prédéfinie, on ne peut pas insérer une valeur (il faut décaller toutes les valeurs suivantes et ensuite affecter la valeur insérée), on ne peut pas supprimer une valeur, et pour trier c'est galère.
VB (contrairement à la majorité des langages) permet de redimensionner un tableau mais c'est très gourmand en ressources car en fait ça crée un tableau plus grand, déplace toutes les données et refait tous les liens entre tes variables et le nouvel emplacement de la donnée.
Bref, il vaut mieux utiliser une collection basée sur la liste chainée (toutes les autres collections de VB.Net).
La List(of ) en étant l'implémentation la plus simple.
Supposons à nouveau une gestion de clientèle, tu crées un objet Client qui dispose en propriété de toutes les informations nécessaires (Nom de la Société, Adresse, téléphone du standard etc....)
Et tu stockes chaque Client dans une List(of Client).
Et puis si dans une société tu as plusieurs contacts, alors tu peux mettre dans Client, une List(of Contact), le Contact contenant lui même une List(of NumeroTelephone) etc....
D'ailleurs, une fois qu'on a bien compris comme marche une collection d'objet et donc le fonctionnement des objets, on ne s'embête plus à faire des vérifications comme tu as demandé au début du ce fil.
On binde directement les collection au formulaire et ça se débrouille (faut que l'objet soit bien codé)
Une petit exemple ici
https://codes-sources.commentcamarche.net/faq/1291-utilisation-du-binding-au-travers-de-l-objet-databindingsource
24 juin 2019 à 21:59
2012, 2013, 2015, 2017 et 2019 possédant tous des versions gratuites.