| |
VB.NET - Ein- und UmsteigerSelbe Validierung mehrer Controls | | | Autor: shivan | Datum: 27.08.10 16:53 |
| Hallo zusammen
Ich habe ein Formular, mit mehreren Textboxen, welche ich validieren möchte. Allerdings möchte ich dies nicht 10 mal einzeln schreiben, sondern lieber mit Hilfe einer Schleife arbeiten.
Gibts da eine Möglichkeit?
Also in etwa so:
For Each System.Windows.Forms.TextBox
If Not IsNumeric(TextBox1.Text) Then
MessageBox.Show("Ungültiger Wert")
End If
Next Wäre so etwas machbar?
Freundliche Grüsse
Shivan | |
Re: Selbe Validierung mehrer Controls | | | Autor: Schü | Datum: 27.08.10 19:20 |
| Es ginge auch über eine Extension. Z.B. für nur numerische Eingaben so :
Imports System.Runtime.CompilerServices
<Extension()> _
Public Sub OnlyNumeric(ByVal T As TextBox, ByVal allow As Boolean)
If T IsNot Nothing Then
If allow Then
AddHandler T.KeyDown, AddressOf m_DoubleKeyDown
Else
RemoveHandler T.KeyDown, AddressOf m_DoubleKeyDown
End If
End If
End Sub
Private Sub m_DoubleKeyDown(ByVal sender As Object, ByVal e As _
System.Windows.Forms.KeyEventArgs)
'Navigation immer durchlassen...
If IsNaviKeyCode(e.KeyCode) OrElse IsNumericKeyCode(e.KeyCode) Then _
Exit Sub
Beep()
e.SuppressKeyPress = True
e.Handled = True
End Sub
Friend Function IsNaviKeyCode(ByVal KeyCode As System.Windows.Forms.Keys) As _
Boolean
Select Case KeyCode
Case Keys.Back, Keys.Delete, Keys.Escape, Keys.Enter, Keys.Return
Return True
Case Keys.Up, Keys.Down, Keys.Left, Keys.Right, Keys.Home, Keys.End
Return True
Case Else
Return False
End Select
End Function
Friend Function IsNumericKeyCode(ByVal KeyCode As _
System.Windows.Forms.Keys) As Boolean
Select Case KeyCode
Case Keys.D0 To Keys.D9
Return True
Case Keys.NumPad0 To Keys.NumPad9
Return True
Case Else
Return False
End Select
End Function Das sieht dann so aus:
Du kannst z.B. im Load-Ereignis der Form scheiben:
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles Me.Load
TextBox1.OnlyNumeric(True)
End Sub Damit hast Du das Verhalten aktiviert.
mittels ähnlicher Extensions kannst Du auch andere Eingaben erzeugen.
Schü | |
Re: Selbe Validierung mehrer Controls | | | Autor: shivan | Datum: 06.09.10 10:12 |
| @ DaveS, danke werde mich gleich mal schlau machen.
@ Schü, danke für den Code. Ich gucks mir mal an, obwohls ziemlich aufwändig ist. | |
Re: Selbe Validierung mehrer Controls | | | Autor: Superpeppi | Datum: 06.09.10 11:04 |
| Wie wäre es hiermit, es werden drei Textboxen überprüft.
Private Sub TextBox_Validating(ByVal sender As Object, ByVal e As _
System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating, _
TextBox2.Validating, TextBox3.Validating
Dim tb As TextBox = TryCast(sender, TextBox)
If Not IsNumeric(tb.Text) Then
MessageBox.Show("Ungültiger Wert")
End If
End Sub | |
Re: Selbe Validierung mehrer Controls | | | Autor: shivan | Datum: 06.09.10 11:51 |
| Sieht ziemlich viel einfach aus! Danke vielmals. | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats sevAniGif (VB/VBA)
Anzeigen von animierten GIF-Dateien
Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. Weitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|