Saisie numerique dans textbox avec visual basic 2005 Express

Résolu
Thomeux Messages postés 58 Date d'inscription mercredi 15 mars 2006 Statut Membre Dernière intervention 14 janvier 2010 - 4 juil. 2006 à 10:43
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

6 réponses

Utilisateur anonyme
4 juil. 2006 à 11:26
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>
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
4 juil. 2006 à 12:12
de la même façon !

en faisant la lecture / ecriture de e.KeyChar

Renfield
Admin CodeS-SourceS- MVP Visual Basic
3
fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 4
4 juil. 2006 à 11:36
Voir aussi l'exmple des voisins en csharp

Je pense que le code est facilement adaptable.
0
Thomeux Messages postés 58 Date d'inscription mercredi 15 mars 2006 Statut Membre Dernière intervention 14 janvier 2010
4 juil. 2006 à 12:08
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 (-)?
0

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

Posez votre question
Utilisateur anonyme
4 juil. 2006 à 12:32
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>
0
troxsa Messages postés 553 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 2 octobre 2016 1
5 juil. 2006 à 18:30
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
0
Rejoignez-nous