Saisie numerique dans textbox avec visual basic 2005 Express [Résolu]

Messages postés
58
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
14 janvier 2010
- - Dernière réponse : troxsa
Messages postés
553
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Dernière intervention
2 octobre 2016
- 5 juil. 2006 à 18:30
Bonjour,
Je programmais jusqu'ici sous vb6 à titre personnel.
La société pour laquelle je bosse n'ayant pas voulu payer une license vb6, je me suis retranché sur visual basic 2005 Express.
Le controle de saisie d'une textbox est quelque chose que je sais faire sous vb6 avec le code ascii de l'évènement keypress, mais je n'arrive pas a faire la même chose sous visual basic 2005 Express. J'ai essayé beaucoup de chose du forum mais rien ne marche, ca compile, mais la saisie est toujours possible.
Si quelqu'un peut m'aider.
merci d'avance
Thomeux
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
24
3
Merci
Salut,

Dans l'event KeyPress de ta TextBox
Handled sert a annuler la frappe.



Private

Sub
TaTextBoxOnKeyPress(
ByVal
sender
As

Object
,
ByVal
e
As
System.Windows.Forms.KeyPressEventArgs)
Handles
TaTextBox.KeyPress

  
If

Not

Char
.IsNumber(e.KeyChar)
And
Asc(e.KeyChar) <> System.Windows.Forms.Keys.Back
Then
e.Handled =
True

End

Sub






Kenji

Merci de lire le règlement (vivement conseillé voir obligatoire).

/FONT>

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 125 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Charles Racaud
Messages postés
17283
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
55
3
Merci
de la même façon !

en faisant la lecture / ecriture de e.KeyChar

Renfield
Admin CodeS-SourceS- MVP Visual Basic

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 125 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Renfield
Messages postés
1108
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
10 juillet 2018
4
0
Merci
Voir aussi l'exmple des voisins en csharp

Je pense que le code est facilement adaptable.
Commenter la réponse de fregolo52
Messages postés
58
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
14 janvier 2010
0
Merci
Ca marche pour si numérique ou si non numérique, mais avec les codes ascci de touche, on pouvait gérer chaque caractère individuellement.
Avec la technique que vous me donnez, comment remplacer un point par une virgule?
comment autoriser le signe (-)?
Commenter la réponse de Thomeux
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
24
0
Merci
Je me suis inspiré du code de MorpionMx pour faire une textbox on ou chosi les caractères à autoriser:



Public

Class
RestrictedTextBox

  
Inherits
System.Windows.Forms.TextBox

  
Private
_AllowCopyPast
As

Boolean
=
False

  
Private
_AllowChar
As

String
=
"0123456789"

  
Private

Const
WM_PASTE
As

Integer
= &H302

  
Protected

Overrides

Sub
WndProc(
ByRef
m
As
System.Windows.Forms.Message)

    
If

Not

MyClass
._AllowCopyPast
AndAlso
m.Msg = WM_PASTE
Then

Return

    
MyBase
.WndProc(m)

  
End

Sub

  
Public

Property
AllowCopyPast()
As

Boolean

    
Get

      
Return

MyClass
._AllowCopyPast

    
End

Get

    
Set
(
ByVal
value
As

Boolean
)

      
MyClass
._AllowCopyPast = value

    
End

Set

  
End

Property

  
Public

Property
AllowChar()
As

String

    
Get

      
Return

MyClass
._AllowChar

    
End

Get

    
Set
(
ByVal
value
As

String
)

      
MyClass
._AllowChar = value

    
End

Set

  
End

Property

  
Protected

Overrides

Sub
OnKeyPress(
ByVal
e
As
KeyPressEventArgs)

    
If

Not

MyClass
._AllowChar.Contains(e.KeyChar)
And

Not

Char
.IsControl(e.KeyChar)
Then
e.Handled =
True

    
MyBase
.OnKeyPress(e)

  
End

Sub

End

Class






Kenji

Merci de lire le règlement (vivement conseillé voir obligatoire).

/FONT>
Commenter la réponse de Charles Racaud
Messages postés
553
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Dernière intervention
2 octobre 2016
0
Merci
Au lieux de ce prendre la tete a faire du code, il existe dans visual basic 2005 version express un controle qui s'appel MaskedTextBox
http://www.troxsa.info/index.php?option=com_content&task=view&id=40&Itemid=2

http://www.troxsa.info/
Le site qui ne parle qu'un seul langage, visual basic 2005
Commenter la réponse de troxsa