2017-10-26 1 views
0

사용자가 내 양식 텍스트 상자에 ' (작은 따옴표) 또는 , (쉼표)을 쓰거나 쓰지 못하도록하고 싶습니까? 나는 이미 시도글을 쓰는 것을 방지하고 'form textbox VB.Net?

:

If Asc(e.KeyChar) = 188 Or Asc(e.KeyChar) = 222 Then 
    e.Handled = True 
End If 

하지만 헛된가 작동하지 않았다.

+1

귀하의 질문은 다른 게시물에 응답 : [Windows 응용 프로그램의 텍스트 상자에서 특수 문자를 사용하지 않는 방법] (https://stackoverflow.com/questions/39965122/vb-net-textbox-no-special-characters) –

+0

나는 이해하지 못했습니다. , 난 단지 두 개의 특수 문자 (작은 따옴표 (') 및 쉼표 (,)를 막으려 고합니다 –

+2

내가 잘못 희망하지만, 당신이 SQL 쿼리에 대한 "잘못된"값을 작성에서 사용자를 방지하려면 - 거기에 더 나은 해결책을 찾아라. – Fabio

답변

3

왜 작동하지 않는지는 잘못된 문자 코드입니다.
아스키 코드는 다음과 같다 :

  • 따옴표 당신이 당신의 코드를 변경하는 경우 ' = 39
  • 쉼표 , = 44

가 작동됩니다

If Asc(e.KeyChar) = 39 Or Asc(e.KeyChar) = 44 Then 
    e.Handled = True 
End If 

참고 : 사본 & ,'의 붙여 넣기가 여전히 작동합니다.

& 붙여 넣기를 텍스트 상자에 완전히 붙여 넣지 않으려면 ShortcutsEnabled- 속성을 False으로 설정할 수 있습니다.

당신이 사본 & 붙여 넣기를 해제하지 않으려면, 당신은 추가로 Validating - 이벤트의 텍스트 상자-내용을 확인하거나 빈 문자열로 쉼표와 그을음있는 qoute를 대체 할 수

Private Sub TextBox1_Validating(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating 
    TextBox1.Text = TextBox1.Text.Replace(",", "").Replace("'", "") 
End Sub 
관련 문제