プロが教えるわが家の防犯対策術!

(.net)
テキストボックスに16進数のみ入力が出来るようにするにはどうすればいいのdしょうか?

VB6では下記ので出来たと思うのですが netではできないのです。
教えて下さい。


If KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Then
Else

If KeyAscii >= Asc("a") And KeyAscii <= Asc("f") Then

Else
KeyAscii = 0
Beep

End If

End If

A 回答 (3件)

あんまりスマートじゃないけど


If not((KeyAscii >= Asc("0") And KeyAscii <= Asc("9")) or (KeyAscii >= Asc("a") And KeyAscii <= Asc("f"))) Then
KeyAscii = 0
Beep

End If

と したらいいでしょう。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

お礼日時:2003/07/28 22:11

VB.NETでないが、この辺はVBの根幹に関わるところなので、変化ないと思いますので、参考に。


Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
For i = 1 To Len(TextBox1.Text)
a = Asc(Mid(TextBox1.Text, i, 1))
' MsgBox a
Select Case a
Case Is <= 57 And a >= 48
GoTo p01
Case Is <= 102 And a >= 92
GoTo p01
Case Else
MsgBox "Err"
Exit Sub
End Select
p01:
Next i
MsgBox "OK"
End Sub
Isのところ辺りとか、Andなどや、なぜか92と102の前後を逆にすると旨く行かないとかご参考までに。
イベントをTextBoxのDblClickなどにしているのは、小生の無知のせいで、良いものがあれば変えて下さい。
    • good
    • 0
この回答へのお礼

 ご回答ありがとうございました。

お礼日時:2003/07/28 22:11

こんにちは。

maruru01です。

これもスマートじゃないですが、16進数を意識した方法です。


Private Sub Text1_KeyPress(KeyAscii As Integer)

  Dim ret As Double

  On Error Resume Next

  ret = CDbl("&H" & Chr(KeyAscii))
  If Err.Number <> 0 Then
    KeyAscii = 0
    Err.Clear
  End If

End Sub
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

お礼日時:2003/07/28 22:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!