La problématique s'étant posée pour moi et après avoir été fouiné un peu partout, voici la solution que j'ai implantée et que je partage avec vous.

Elle gère le point (nombre décimale). J'ai pas testé avec une virgule (mes PC ne sont pas configurés en mode "virgule").
Elle gère le copier/coller, le retour en arrière et l'espace vide.
Ne gère pas la notation scientifique (1e10 par exemple)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
 
Private Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
'dès que je change le text par entrée manuelle ou copier/coller
        TextBox1.Text = verif_nombre(TextBox1.Text) 'appelle la fonction de vérification qui renvoie un text compatible
   End Sub
 
Module Module1
 
   Public Function verif_nombre(ByVal text As String)
        Dim text_vérifié As String = ""
        Dim l As Integer = text.Length 'récupère la longueur du texte pour traiter le cas ""
        If l = 0 Then Return text_vérifié ' si le texte est "" ne change rien
        If IsNumeric(text) Then
            text_vérifié = text 'si le texte est numérique , cela inclut les décimales, ne change rien
        Else 'si le texte n'est pas numérique
            MsgBox("attention vous ne pouvez entrer que des nombres") 'prévient l'utilisateur
            text = text.Remove(l - 1) 'supprime le dernier caractère entré, généralement celui qui pose problème
            text_vérifié = text
        End If
        Return text_vérifié 'renvoie le texte corrigé et conforme
   End Function
 
End Module
Voilà, si ça peut aider certains
(testé sur Microsoft Visual Basic*2010 express, Windows 7 , 32 et 64 bit)