많은 컨트롤이있는 WinForms에 응용 프로그램이 있습니다. 이 컨트롤은 응용 프로그램의 설정을 나타내며 사용자는 버튼을 클릭하여이 설정을 저장할 수 있습니다.NumericUpDown 값이 잘못되었습니다.
최소 : 10 최대 : 60 단계 : 1
만약 민은 이러한 속성을 가지고 말할 수 있습니다 : 나는 (내가 민을 호출합니다) 제어 NumericUpDown에 문제를 해결하기 위해 노력하고
사용자가 값을 변경하려면 두 가지 방법이 있습니다. 화살표 (Num 오른쪽)를 클릭하거나 Num에 수동으로 값을 직접 입력하는 것입니다. 첫 번째 방법은 괜찮지 만 대부분의 사용자가 두 번째 방법을 사용하고 있으며 약간의 문제가 있습니다.
사용자가 예를 들어 1과 같이 간격을 벗어난 값을 입력하면 5로 입력을 계속할 수 있으므로 최종 값은 51이며 이는 간격 내에 있습니다. 그러나 값 1 다음에 타이핑을 멈 추면 그는 간격 (1)에서 값을 타이핑한다는 의미입니다. 그가 Num 중 어딘가를 클릭하면, 간격을 벗어나는 값이 자동으로 가장 가까운 허용 값으로 변경됩니다 (1의 경우 값은 10으로 변경됨).
하지만 그는 아마도이 자동 변경을 알지 못해서 어떻게 든 처리하고 잘못된 값을 입력했음을 알릴 것입니다. 그러나이 상황은 Num의 어떤 이벤트에서도 처리되지 않습니다. ValueChanged 이벤트에서 값을 읽으려고하면 올바르지 않은 값이 자동으로 변경된 값을 읽습니다.
나는 TextChanged
이벤트를 추가 할 수 있지만 어떤 잘못된 값 (5)을 입력하면 유효한 값 (1을 더하여 15가됩니다)으로 변경 될 수 있다는 문제점이 있습니다.
이 문제를 해결하는 방법에 대한 아이디어가 있으십니까? 나는 이것이 어리 석다는 것을 알고있다. 그러나 이것은 나에 의존하지 않는다. 나는 이것을해야한다. 그리고 나는 방법을 모른다.
그러나 사용자가 화살표로 값을 설정하려면 어떻게해야합니까? 최소값과 최대 값이 설정되지 않은 경우이 화살표로 잘못된 값으로 쉽게 이동할 수 있습니다 ... – DanielH
Num.ValueChanged를 사용하여 제한 범위 내에서 값을 유지합니다. – OSKM