Check input for Alfanumeric...
-
Private Sub textBox1_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles textBox1.KeyPress
Dim KeyAscii As Short = Asc(eventArgs.KeyChar)
Dim Index As Short = textBox1.GetIndex(eventSender)
If InStr("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" & Chr(8), Chr(KeyAscii)) > 0 Or KeyAscii < 32 Then
Else
KeyAscii = 0
Beep()
End If
eventArgs.KeyChar = Chr(KeyAscii)
If KeyAscii = 0 Then
eventArgs.Handled = True
End If
End SubGetting sick of these kind of codeblocks ... oh yeah, remember Char(8) is a backspace :laugh: If anyone knows why he might have written this line :
Dim Index As Short = textBox1.GetIndex(eventSender)
I have no clue ...
-
Private Sub textBox1_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles textBox1.KeyPress
Dim KeyAscii As Short = Asc(eventArgs.KeyChar)
Dim Index As Short = textBox1.GetIndex(eventSender)
If InStr("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" & Chr(8), Chr(KeyAscii)) > 0 Or KeyAscii < 32 Then
Else
KeyAscii = 0
Beep()
End If
eventArgs.KeyChar = Chr(KeyAscii)
If KeyAscii = 0 Then
eventArgs.Handled = True
End If
End SubGetting sick of these kind of codeblocks ... oh yeah, remember Char(8) is a backspace :laugh: If anyone knows why he might have written this line :
Dim Index As Short = textBox1.GetIndex(eventSender)
I have no clue ...
-
ddecoy wrote:
I have no clue ...
Welcome to my world... ;)
-NP Never underestimate the creativity of the end-user.
The best line in this function is Beep()!
-
The best line in this function is Beep()!
We aren't in the Lounge now - no need to censor your language... ;)
Did you know: That by counting the rings on a tree trunk, you can tell how many other trees it has slept with.
-
Private Sub textBox1_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles textBox1.KeyPress
Dim KeyAscii As Short = Asc(eventArgs.KeyChar)
Dim Index As Short = textBox1.GetIndex(eventSender)
If InStr("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" & Chr(8), Chr(KeyAscii)) > 0 Or KeyAscii < 32 Then
Else
KeyAscii = 0
Beep()
End If
eventArgs.KeyChar = Chr(KeyAscii)
If KeyAscii = 0 Then
eventArgs.Handled = True
End If
End SubGetting sick of these kind of codeblocks ... oh yeah, remember Char(8) is a backspace :laugh: If anyone knows why he might have written this line :
Dim Index As Short = textBox1.GetIndex(eventSender)
I have no clue ...
The code isn't testing for alphanumeric--just alphabetic. That having been said, I don't see anything overly hideous. I would expect VB to recognize the string with the letters and backspace as a constant, so the code simply searches for an input character in a constant string. Not gorgeous (using a named constant called AllowableKeys or something would help), but the list of allowable characters can be easily adjusted by changing the string. If upper and lower case are going to be handled identically elsewhere, it might have been nice to convert to uppercase and just check against uppercase letters. As for my own style, if I were just checking against one contiguous range of characters, I'd use the >= and <= to check the range. With two ranges, or one range plus one or two other characters, I'd still probably use those. With more than that, I'd likely just search in a string with all valid characters.
-
The code isn't testing for alphanumeric--just alphabetic. That having been said, I don't see anything overly hideous. I would expect VB to recognize the string with the letters and backspace as a constant, so the code simply searches for an input character in a constant string. Not gorgeous (using a named constant called AllowableKeys or something would help), but the list of allowable characters can be easily adjusted by changing the string. If upper and lower case are going to be handled identically elsewhere, it might have been nice to convert to uppercase and just check against uppercase letters. As for my own style, if I were just checking against one contiguous range of characters, I'd use the >= and <= to check the range. With two ranges, or one range plus one or two other characters, I'd still probably use those. With more than that, I'd likely just search in a string with all valid characters.
-
Private Sub textBox1_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles textBox1.KeyPress
Dim KeyAscii As Short = Asc(eventArgs.KeyChar)
Dim Index As Short = textBox1.GetIndex(eventSender)
If InStr("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" & Chr(8), Chr(KeyAscii)) > 0 Or KeyAscii < 32 Then
Else
KeyAscii = 0
Beep()
End If
eventArgs.KeyChar = Chr(KeyAscii)
If KeyAscii = 0 Then
eventArgs.Handled = True
End If
End SubGetting sick of these kind of codeblocks ... oh yeah, remember Char(8) is a backspace :laugh: If anyone knows why he might have written this line :
Dim Index As Short = textBox1.GetIndex(eventSender)
I have no clue ...
This looks like it was converted from an old dialect of Basic. The only thing I see as "odd" is the
& Chr(8)
, since the check for< 32
would catch all the commonCtl
chars, includingBksp
, anyway. But my guess is that it was converted and modified a couple of time to end up with that. TheDim Index As Short = textBox1.GetIndex(eventSender)
line looks like something left over from a previous mod or from some debugging effort. It doesn't look likeIndex
is used at all.CQ de W5ALT
Walt Fair, Jr., P. E. Comport Computing Specializing in Technical Engineering Software