2011-04-28 4 views
-2

텍스트 상자에 이름을 입력하는 동안 '_'(밑줄)을 제외한 특수 문자를 방지하기 위해 어떤 코드를 작성해야합니까?사용자가 WinForms 텍스트 상자에 입력하는 문자의 유효성을 검사하려면 어떻게합니까?

이러한 문자가 있으면 팝업 메시지가 나타납니다.

+2

당신이 쓴 코드를 제공합니다 : 우리가 당신을 위해 모든 일을하지 않을 수 있습니다을 ... – Marco

+3

나는 왜 합리적인 질문에 대한 그런 가혹한 반응이 있었는지 궁금해했다. 그리고 나서 "plz가 코드를 보내"라는 말로 문자 그대로 시작했다. ... – Justin

답변

14

내가 당신의 코드를 작성하는 대신, 여기에 그런 위업을 달성하는 데 필요한 기본 단계는 다음과 같습니다

  1. TextBox 컨트롤에 대한 KeyDown 이벤트를 처리합니다.

  2. 입력 한 문자가 허용되는지 여부를 확인하려면 Char.IsSymbol method과 같은 것을 사용하십시오. 밑줄을 명시 적으로 확인하십시오. 다른 기호의 특별한 경우로 허용하고 싶기 때문입니다.

  3. 유효한 문자를 입력 한 경우 아무 것도 입력하지 마십시오. WinForms는 텍스트 상자에 그것을 삽입 처리합니다.

    그러나 잘못된 문자를 입력 한 경우 문자를 텍스트 상자에서 허용하지 않는다는 메시지를 사용자에게 표시해야합니다. 여기에 할 일 :

    1. e.SuppressKeyPress property을 True로 설정하십시오. 이렇게하면 문자가 텍스트 상자에 나타나지 않습니다.

    2. 표시 문자가 입력 한 사용자가 텍스트 상자에 의해 허용되지 않음을 나타내는 및 고려 유효한 입력 어떤 문자를 알리는 텍스트 상자에 툴팁 창.
      가장 쉬운 방법은 ToolTip class입니다. 이 컨트롤을 디자인 타임에 폼에 추가하고 적절한 경우 Show method의 오버로드 중 하나를 사용하여 폼을 표시합니다.
      특히, 과부하 중 하나를 사용하여 IWin32Window을 지정하여 도구 설명을 텍스트 상자 컨트롤과 연결할 수 있습니다.

      An example of a balloon-style tooltip, displaying an error message.

      또는 대신 툴팁, 당신은 마지막 입력이 유효 사용자에게 알리는, 옆에있는 텍스트 상자 컨트롤에 약간의 오류 아이콘을 표시 할 수 있습니다. 이것은 ErrorProvider control을 사용하여 구현하기 쉽습니다. 툴팁 컨트롤처럼 디자인 타임에 양식에 추가하고 런타임시 SetError method을 호출하여 오류 메시지를 표시하십시오.

      An example of an ErrorProvider control, set on a text box.

      무슨 일이 있어도, 하지 디스플레이 메시지 상자를 해! 입력을 시도하는 사용자가 혼란을 겪고 있기 때문에 실수로 입력하려는 다음 문자를 입력하여이를 무시합니다.

+3

아주 좋은 대답. 나는 좋은 사용자 경험, 특히 메시지 상자에 대한 조언을하기 위해 통합해야하는 모든 훌륭한 디자인을 설명한다는 사실을 좋아합니다. –

0

TextBoxKeyDown 이벤트에 처리기를 추가하십시오. 거기에서 눌려진 키를 검사 할 수 있으며 메시지 상자를 팝업하는 것을 포함하여 원하는 키를 할 수 있습니다.

+0

그는 이름에 _ _을 썼다. _ 텍스트 _라고 말하고 싶습니까? 나는 그가 정말로 묻고있는 것이 무엇인지 깨닫지 못했기 때문에 대답을하지 않았다. @Raj에게 특별한 감사를 전한다. 읽을 수 없기 때문에이 게시물을 편집하는 것이 더 좋다. – Marco

+0

@Marco : 나는 잘 모르겠다. 그는 ** 텍스트 상자에 ** 이름을 입력하는 것을 썼습니다. * 아마도 TextBox는 사용자 이름을 보유하고있을 것입니다. 나는 확실하지 않지만 그 질문에 중요하지 않습니다. 내가 놓친 게 있니? –

관련 문제