맞춤형 DatagridView 열은 Windows Vista에서 입력 한 소수점 분리기를 허용하지 않습니다.

StackOverflow https://stackoverflow.com/questions/157144

문제

프로젝트의 경우 NumericUpdown 컨트롤이 포함 된 사용자 정의 DatagridView 열을 구축했습니다. 그것은 제안과 유사하게 구현됩니다 마이크로 소프트

열은 Windows XP에서 잘 작동합니다. 입력 한 숫자와 소수점 분리기를 수용합니다. Windows Vista에서는 컨트롤이 숫자 키패드에 의해 입력 된 소수점 분리기 만 수용하지만 키보드 기본 블록은 아닙니다.

Wind 스위스의 소수점 분리기는 다음과 같습니다.

누군가 이유와 해결책에 대한 아이디어가 있습니까? 매우 감사합니다!

남자 이름

편집하다: 내 문제에 대한 해결책을 찾았습니다.

  1. 상황을 조금 더 명확히하기 위해. NumericUpdown 컨트롤 I를 사용하는 것은 idatagridViewEditingControl을 구현하고 NumerIcupDown에서 상속합니다. idatagridViewEditingControl로 인해 나는 메소드 editingcontrolwantsinputkey를 구현합니다. 그리고이 방법을 구현할 때 나는 나의 실수 또는 무엇이 잘못되었는지 발견했다.

  2. 방법에서 입력 된 키를 검사하고 컨트롤이 처리 해야하는지 결정했습니다. 그러나 소수점 분리기의 경우 나는 단지 예상했다 keys.decimal. 내 특별한 (잘못된) 케이스에서는 키를 일치시킬 수 없습니다. 누락 된 것은 찾는 것이 었습니다 keys.oemperiod 도. 그리고 그것은 수정이었습니다.

도움이 되었습니까?

해결책

OnkeyDown 및/또는 OnkeyPress 코드를 붙여 넣을 수 있습니까? 적어도 관련 키 필터링 코드. 문제를 더 쉽게 찾을 수 있습니다.

BTW, 나는 일반적으로 영국 영어와 브라질 포르투갈 키보드를 모두 사용하므로 이러한 문제에 대한 저의 몫을 가졌습니다. 그런 종류의 지역화 전문가가되도록 강요합니다. :)

편집하다: 아, 죄송합니다. 재고 Numericupdown 컨트롤을 사용하고 있음을 다시 읽고 이해했습니다. 여기서 시도해 볼 수 있도록 열 코드를 지적 할 수 있습니까? 아마도 로케일이 제어를 위해 설정되지 않았으며, 어느 시점에서 수동으로 수행해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top