Public Class Form6 'Note que j'ai corrigé le code pour coller à ce que je t'ai dit plus haut. Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress Dim num() As Char = {"0"c, "1"c, "2"c, "3"c, "4"c, "5"c, "6"c, "7"c, "8"c, "9"c} If Not num.Contains(e.KeyChar) And Not e.KeyChar = Convert.ToChar(8) Then e.Handled = True End If End Sub Private Sub TextBox2_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox2.KeyPress Dim num() As Char = {"0"c, "1"c, "2"c, "3"c, "4"c, "5"c, "6"c, "7"c, "8"c, "9"c} If Not num.Contains(e.KeyChar) And Not e.KeyChar = Convert.ToChar(8) Then e.Handled = True End If End Sub Private Sub TextBox3_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox3.KeyPress Dim num() As Char = {"0"c, "1"c, "2"c, "3"c, "4"c, "5"c, "6"c, "7"c, "8"c, "9"c} If Not num.Contains(e.KeyChar) And Not e.KeyChar = Convert.ToChar(8) Then e.Handled = True End If End Sub End Class
Public Class Form6 Private Sub JusteLesNombres_KeyPress(sender As Object, e As KeyPressEventArgs)'j'ai aussi supprimé la fin de la ligne Dim num() As Char = {"0"c, "1"c, "2"c, "3"c, "4"c, "5"c, "6"c, "7"c, "8"c, "9"c} If Not num.Contains(e.KeyChar) And Not e.KeyChar = Convert.ToChar(8) Then e.Handled = True End If End Sub End Class
Private Sub JusteLesNombres_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress, TextBox3.KeyPress, TextBox2.KeyPress
Handlesindique que la méthode est abonnée au évènements dont la liste suit TextBox1.KeyPress, TextBox3.KeyPress, TextBox2.KeyPress
Dim tb As New TextBox tb.Location = New Point(200, 50) tb.Name = "nb1" Me.Controls.Add(tb) AddHandler tb.KeyPress, AddressOf JusteLesNombres_KeyPress 'c'est là
, et si ça n'est pas le cas, ça va quand même servir pour la suite.
Quand on ajoute des textbox par le code, c'est ce mécanisme qu'il faut reproduire.
Dim tb As TextBox = New TextBox()
Dim cb1 As String = cb.Text Select Case cb1 Case Is = "Cercle" tb.Location = New Point(36, 44) tb.Name = "nb1" Me.Controls.Add(tb) Me.Controls.Remove(tb2) Me.Controls.Remove(tb3) lb1.Location = New Point(63, 30) lb1.Text = "Rayon"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionje sais deja comment interdire les caratères dans une textboxil me faudrait ce code là aussi
Dim num() As Char = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"} If Not num.Contains(e.KeyChar) And Not Asc(e.KeyChar) = Keys.Back Then e.Handled = True End If
Dim num() As Char = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"} If Not num.Contains(e.KeyChar) And Not Asc(e.KeyChar) = Keys.Back Then e.Handled = True End If
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"ce sont des string et pas des Char, il y a conversion implicite, il est possible qu'un jour ce que tu crois implicite ne soit pas ce que le compilateur juge implicite.
Asc()c'est pas du VB.Net, c'est du VB6, pareil dans 99,99% des cas, ça fonctionne et un jour non. En plus VB.Net est un langage tout objet, alors que VB6 non, ça fait donc mélanger 2 paragdimes.
Public Class NombreTextBox Inherits TextBox End Class
Public Class NombreTextBox Inherits TextBox Private Sub JusteLesNombres_KeyPress(sender As Object, e As KeyPressEventArgs) Handles Me.KeyPress 'ici je précise qu'on est abonné à notre propre évènement Dim num() As Char = {"0"c, "1"c, "2"c, "3"c, "4"c, "5"c, "6"c, "7"c, "8"c, "9"c} If Not num.Contains(e.KeyChar) And Not e.KeyChar = Convert.ToChar(8) Then e.Handled = True End If End Sub End Class
Public Class Form6 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim tb As New TextBox tb.Location = New Point(200, 50) tb.Name = "nb1" Me.Controls.Add(tb) End Sub End Class
Public Class Form6 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim tb As New NombreTextBox 'c'est là tb.Location = New Point(200, 50) tb.Name = "nb1" Me.Controls.Add(tb) End Sub End Class
Dim num() As Char = {"0"c, "1"c, "2"c, "3"c, "4"c, "5"c, "6"c, "7"c, "8"c, "9"c}