이 간단한 작업으로 인해 두통이 생겼습니다. 사용자가 텍스트 상자 컨트롤에 float.TryParse
의 뒤에 오는 텍스트를 입력하도록하고 싶습니다.C# 텍스트 상자에 대한 입력 유효성 검사 : float
일반 TextBox를 사용하고 일부 btnOK_Click에서 Text를 확인할 수는 있지만 분명히 절름발이입니다. 또한 기본 제공 MaskedTextBox 컨트롤이 있지만 마스크를 float.TryParse
과 같게 설정하지 못했습니다. 또한 포커스 변경이 발생할 때만 유효성을 확인하는 것 같습니다.
그물을 파헤 치다 보면 흥미로운 아이디어를 얻을 수 있었지만, 내가 좋아할만한 멋진 아이디어는 없었습니다.
이 문제를 어떻게 해결 했습니까? 나는 명백한 해결책을 놓친 것입니까, 아니면 직접이 기능을 구현해야합니까?
그래서 비슷한 스레드가 몇 개 있다는 것을 알고 있지만 실현 가능한 해결책은 없습니다.
업데이트 : 예, WinForms. 쉽게 alot을하게
내 마지막 솔루션에서는 포커스가 없어지면 마지막 유효 값을 캐싱하고, 필요한 경우 텍스트를 다시 설정합니다. – mafu
색깔을 바꾸는 당신의 아이디어는 좋았습니다. 내 솔루션에서는 잘못된 값을 즉시 채색하면 값을 변경해야한다는 것을 사용자에게 분명하게 알릴 수 있습니다. – mafu
TryParse가 실패했을 때 TryParse()를 TextChanged에두고 텍스트 상자의 배경색을 빨간색으로 설정하고 TryParse가 통과 할 때 배경색을 Color.Empty로 다시 설정했습니다. 이렇게하면 사용자가 입력 할 때 즉시 피드백이 제공됩니다. – CleanCoder