begin process at 2010 03 20 21:35:59
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Divers

 > 

General

 > 

textbox nombre


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

textbox nombre

mercredi 1 juillet 2009 à 11:50:14 | textbox nombre

Sunnydelight

Bonjour,

Alors voila j'ai un petit problème avec un programme que j'ai fais. Le principe est tel que :

L'utilisateur vient saisir un nombre dans une textBox, puis un autre nombre dans une autre TextBox. Ensuite il vient cliquer sur un bouton_click.

Dans ce bouton click je fais :

Si a<b alors j'affiche un message dans une MsgBox.

J'ai bien déclaré mes variables a et b en public pour quelles soient utilisées par toutes les procédures. Et fait dans la procédure de chaque TextBox :

a = Cint(TextBox.Text)

et

b = Cint(TextBox.Text)

afin de convertir une chaine en nombre.

Mon programme fonctionne tres bien, mais le seul hic c'est que dés que je tape un caractère, au lieux d'un chiffre ou un espace bref un caractère alors le programme plante.

J'ai lu qu'il fallait filtres les infos pour ne pas tenir compte de donnée qui n'est pas rapport avec le code.

Mais comment le faire?

Merci

Bye +++
mercredi 1 juillet 2009 à 12:36:59 | Re : textbox nombre

hellangel777

Bonjour,

Avant d'effectuer ton traitement (a<b) il faut que tu test si les champs sont de type numérique.

Dim numericCheck As Boolean
testVar1 = Cint(TextBox1.text)
testVar2 = Cint(TextBox2.text)
if IsNumeric(testVar1) = True then
   If IsNumeric(testVar2) = True then
      'Traitement
   else
      msgbox "La valeur dans la zone 2 n'est pas numérique !"
      textbox2.text = vbnullstring
      textbox2.text.setfocus
   end if
else
      msgbox "La valeur dans la zone 1 n'est pas numérique !"
      textbox1.text = vbnullstring
      textbox1.text.setfocus
end if

A toi d'adapter....
Bon courage

HellAngel777
Les machines ne font pas d'erreurs
Heureusement nous sommes humains
mercredi 1 juillet 2009 à 12:45:46 | Re : textbox nombre

PCPT

Administrateur CodeS-SourceS
salut,

tu peux adapter le code ci-dessous pour simplement forcer la saisie numérique
http://www.codyx.org/snippet_textbox-numerique-seulement_53.aspx#139


++


mercredi 1 juillet 2009 à 13:22:13 | Re : textbox nombre

Sunnydelight

Ok, je vais essayer sa ce soir alors, et merci pour les conseils !

Bye +++
mercredi 1 juillet 2009 à 19:04:22 | Re : textbox nombre

ghuysmans99

Membre Club
Plus facile d'utiliser la solution par APIs proposée par PCPT ...
Signature.gif
jeudi 2 juillet 2009 à 00:53:34 | Re : textbox nombre

Sunnydelight

Bonsoir tous le monde,

Alors j'ai adapter le texte pour la toute première réponse et visual ne reconnait pas setfocus ou il me met un message d'erreur. J'ai pourtant bien déclarer les variables mais rien a faire.

J'ai tester le code en API mais c'est encorre pire, je pense que je ne dois pas le recopier au bon endroit.

Je suis débutant, c'est peut être pour sa que je bloc sur des choses de ce type, bref .J'apprends avec vb.net pour les nuls c'est tres bien mais il  y a quelques infos comme le problème que j'énonce qui n'est pas assez approfondie. Quand je cherche sur le net il y a des morceaux de code énorme juste pour dire NON au lettre ou caractère, j'aurai pas pensé lol. J'ai donc adapté mon code et je voulais avoir votre avis.

Voici mon code et qui fonctionne correctement, la partie clear me permettre d'éviter toute saisie de caractère evitant ainsi les beugs. Dites moi si la façon de faire est mauvaise. Je me suis inspiré du site :
[ Lien ]

Private

Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

IfNot IsNumeric(TextBox1.Text) Then

TextBox1.Clear()

' MsgBox("Veuillez entrer un nombre !") beug l'affiche une seconde fois au second clik sur OK

EndIf

EndSub


Bonne soirée





jeudi 2 juillet 2009 à 01:41:28 | Re : textbox nombre

PCPT

Administrateur CodeS-SourceS
Réponse acceptée !
ta méthode n'est pas bonne non :
*tu testes toute la zone à chaque pression, alors que logiquement, tu as déjà "presque tout testé" à la pression précédente
*si l'utilisateur fait une simple faute de frappe? 123465789g
arrivé au g, tout sera vidé

tu as pris un exemple VB6 alors que tu es en VB.NET

je viens de traduire le lien de tout à l'heure

copie le code ci-dessous dans un module (projet > ajouter un module) que tu nommeras "modNumericBox", et applique l'exemple indiqué en section "remarques"



'    TEXTBOX NUMERIQUE SEULEMENT
'    http://www.codyx.org/snippet_textbox-numerique-seulement_53.aspx#2382
'    Posté par [ PCPT ] le 02/07/2009


Module modNumericBox
    Private Const ES_NUMBER As Integer = &H2000
    Private Const GWL_STYLE As Integer = -16
    <System.Runtime.InteropServices.DllImportAttribute("user32.dll", SetLastError:=True)> _
    Private Function GetWindowLong(ByVal hwnd As IntPtr, ByVal nIndex As IntegerAs Integer
    End Function
    <System.Runtime.InteropServices.DllImportAttribute("user32.dll", SetLastError:=True)> _
    Private Function SetWindowLong(ByVal hwnd As IntPtr, ByVal nIndex As IntegerByVal dwNewLong As IntegerAs Integer
    End Function

    Public Sub SetTextBoxNum(ByRef Obj As Object)
        If (TypeOf Obj Is System.Windows.Forms.TextBox) Then
            SetWindowLong(Obj.Handle, GWL_STYLE, GetWindowLong(Obj.Handle, GWL_STYLE) Or ES_NUMBER)
        End If
    End Sub
End Module

'----------------------------------------------------------------
'Remarques :
'dans le form_load :
'modNumericBox.SetTextBoxNum(TextBox1)
'modNumericBox.SetTextBoxNum(TextBox2)

'
'selon les paramètres de votre projet et la version de VS, lors de la saisie d'une valeur non numérique, une popup (tooltip) exclamation apparaitra




voici un aperçu du résultat depuis VS2008



++

jeudi 2 juillet 2009 à 19:31:27 | Re : textbox nombre

Sunnydelight

Alors j'ai fais comme tu m'a expliqué et sa tourne comme sur des roulettes! Je suppose que le code dans le module faut pas chercher à trop comprendre toutes les lignes car la j'ai ren appris de ce genre pour le moment?

Il y a encorre un beug, quand l'utilisateur ne tape rien et fait entrée mais c'est un autre problème, je me débrouillerai.

Merci pour l'aide.
jeudi 2 juillet 2009 à 19:42:14 | Re : textbox nombre

PCPT

Administrateur CodeS-SourceS
(pense à valider la ou les bonnes réponses si le problème est résolu)


"
Je suppose que le code dans le module faut pas chercher à trop comprendre "
bin à part ce code, je ne vois pas quel autre code tu pourrais avoir envie de comprendre dans ce cas :) ....


une textbox est une fenêtre, avec un style
c'est windows qui le gère
par chance, windows gère plusieurs styles
on lui demande donc juste d'ajouter à la textbox le message enpêchant la saisie autre que numérique, définie par la constante
ES_NUMBER

demande si c'est pas clair


"
quand l'utilisateur ne tape rien et fait entrée "
à toi de vérifier que les zones ne sont pas vides, lors du _click (ou du _keypress enter)

if (TextBox1.TextLength>0) andalso (TextBox2.TextLength>0) then
TONCODE
endif


++


vendredi 3 juillet 2009 à 11:42:31 | Re : textbox nombre

Sunnydelight

Tu plaisantes quand tu dit c'est le seul code à comprendre ? lol . Comme je disais je débute et pour le moment il y a pas mal de terme et d'expression que je ne connais pas comme par exemple :

 Private Const ES_NUMBER As Integer = &H2000
    Private Const GWL_STYLE As Integer = -16

ou

<System.Runtime.InteropServices.DllImportAttribute("user32.dll", SetLastError:=True)> _


Les valeurs attribués, l'utilisation de certaine nomination "DLLImportAttribute" et pas mal de partie. Je suppose que cela viendra avec le temps du moin gespere, la le livre pour les nuls m'a beaucoup aidé mais il ne parle pas de ce genre de problème ou de manière de l'écrire.

Je pense me diriger vers le livre visual basic.net étape par étape, sa l'air d'etre un livre assez complet.

Merci en tout cas pour votre aide.


1 2

Cette discussion est classée dans : bouton, textbox, programme, nombre, vient


Répondre à ce message

Sujets en rapport avec ce message

Limiter nombre de charactere saisie textbox via bouton [ par olobo ] Bonjour!Voila j'ai un petit soucis j'aimerais limiter la saisie dans une TextBox a 4 charatère la commande est donc  TxtBox.MaxLength = 4 Cependant ce affichage textbox [ par titil64 ] bonjour a tous alors je vous explique mon truc je travaille sous vba excel j'ai deux userformdans la premiere 20 texbox20label un bouton de commande " Enregistrement dans un textbox - VB 2008 [ par ggdavidgg ] Bonjour à tous ! J'ai créé un programme et une des parties de ce programme me pose un problème. Quand l'utilisateur cliquerait sur un bouton, cela pro [déplacé VB.NET -> CPP] lancer un exécutable par un bouton en c++ [ par nimont010 ] salutje suis face a un petit problèmeje veux lancer un programme a partir un d'autre programme par un click sur un bouton et le travail c'est fais en Option Boutton / bouton option [ par psgman25 ] Salut,Tout d'abord je vous éxplique ma situation Je suis en stage et je dois crée un mini programme pour facilité des calculs...J'utilise un PC avec W Affecter a des textbox des valeur par hasar!! [ par mond14 ] Salut,svp  je fait un programme en vb.net2008 et j'ai besoin de votre aide.par-exemple on un 3 textbox et un bouton et je veux que si on clic sur ce b Equation dans une TEXTBOX [ par DESMOULIN ] J'ai fait un programme pour résoudre une équation du second degré (par exemple) en VB6 .Mais celle-ci est dans le programme, ce qui m'oblige à arreter Récupérer le nombre de caractères saisis dans un textbox et l'afficher dans un autre textbox [ par nasilo ] Bonjour,J'ai crée userform et limité le nombre de caractères saisis dans un textbox avec maxlenght. Je ne trouve pas le code qui me permettrait de réc VB.NET [ par HELLOKITTYYY ] Je travaille sur vb.Net. J'ai deux pages asp, l'une contient un textbox et un bouton, et la deuxième contient un textbox. Quel code vb je dois mettre


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales