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

Thomeux 58 Messages postés mercredi 15 mars 2006Date d'inscription 14 janvier 2010 Dernière intervention - 4 juil. 2006 à 10:43 - Dernière réponse : troxsa 553 Messages postés jeudi 28 novembre 2002Date d'inscription 2 octobre 2016 Dernière intervention
- 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 

Votre réponse

6 réponses

Meilleure réponse
Charles Racaud 3181 Messages postés dimanche 15 février 2004Date d'inscription 9 avril 2017 Dernière intervention - 4 juil. 2006 à 11:26
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>

Merci Charles Racaud 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de Charles Racaud
Meilleure réponse
Renfield 17308 Messages postés mercredi 2 janvier 2002Date d'inscription 22 août 2018 Dernière intervention - 4 juil. 2006 à 12:12
3
Merci
de la même façon !

en faisant la lecture / ecriture de e.KeyChar

Renfield
Admin CodeS-SourceS- MVP Visual Basic

Merci Renfield 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de Renfield
fregolo52 1108 Messages postés mercredi 15 juin 2011Date d'inscription 10 juillet 2018 Dernière intervention - 4 juil. 2006 à 11:36
0
Merci
Voir aussi l'exmple des voisins en csharp

Je pense que le code est facilement adaptable.
Commenter la réponse de fregolo52
Thomeux 58 Messages postés mercredi 15 mars 2006Date d'inscription 14 janvier 2010 Dernière intervention - 4 juil. 2006 à 12:08
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
Charles Racaud 3181 Messages postés dimanche 15 février 2004Date d'inscription 9 avril 2017 Dernière intervention - 4 juil. 2006 à 12:32
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
troxsa 553 Messages postés jeudi 28 novembre 2002Date d'inscription 2 octobre 2016 Dernière intervention - 5 juil. 2006 à 18:30
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.