2016-06-14 3 views
2

텍스트 상자에 숫자 만 허용하는 적절한 방법이 있는지 알고 싶습니다. 예를 들어어떻게 TextBox가 숫자 값만 받아들이도록 할 수 있습니까?

내가는 "ABCD1234"으로 채우는에서 사용자를 "중지"할 만 사전에 그를 "1234"

감사 채우기하자!

+0

을 받아? 그렇지 않은 경우이 정보를 추가하십시오. – MrApnea

+0

예 텍스트 상자, 지금 업데이트하십시오! –

+4

가능한 [숫자 만 허용하는 텍스트 상자를 만들려면 어떻게합니까?] (http://stackoverflow.com/questions/463299/how-do-i-make-a-textbox-that-only-accepts-numbers) –

답변

7

다음 코드를 시도해 보았고 정상적으로 작동했습니다. textbox은 사용자가 숫자 만을 입력 할 수있게합니다.

private void txtbox1_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar)) 
    { 
     e.Handled = true; 
    } 
} 

당신은 또한이

e.Handled = !(char.IsDigit(e.KeyChar)); 
+1

사용자가 숫자가 아닌 숫자를 붙여 넣을 수 있습니까? – ABuckau

+0

아니요, 사용자가 alhabetics도 입력하려고해도 허용되지 않습니다. –

+0

main 메서드에서 textbox를 사용하여 txtbox1_KeyPress 메서드를 "호출"하는 방법은 무엇입니까? –

0

당신은 다음 코드 줄을 사용하여 입력을 평가할 수 :

private string _MyNemericStringr; 

public string MyNemericString 
{ 
    get { return _MyNemericStringr; } 
    set { 
     if (value.All(char.IsDigit)) 
      _MyNemericStringr = value; 
     else 
      _MyNemericStringr = "0"; 
    } 
} 

: 당신은 getter와 setter의 문자열 속성으로이를 정의하면

if (txtNumericBox.Text.All(char.IsDigit)) 
    // Proceed 
else 
    // Show error 

는 다음 다음과 같이 사용할 수 있습니다 두 번째 예에서는 속성에 숫자가 아닌 값을 할당하면 값이 "0"으로 반환됩니다. 그렇지 않으면 평소대로 처리됩니다.

0

는이 간단한 코드를 시도 할 수 있습니다 시도 할 수 있습니다. 당신은 당신이 다음 텍스트 상자에 대해 얘기하면 문자열이 숫자가 아닌 문자를 입력에서 사용자를 중지하려면 말할 때

private void keypressbarcode(object sender, KeyPressEventArgs e) 
{ 
     e.Handled = !(char.IsDigit(e.KeyChar) || e.KeyChar == (char)Keys.Back); 
} 

숫자 값과 백 스페이스

관련 문제