[제품종류] IEC1000
[개발환경] Visual Studio 2008 C#
증상 요약SmartButton 컨트롤에서 NestedClickEventPrevent 속성을 True로 설정한 경우, 버튼을 한 번 클릭하면 Disable 상태로 전환된 후 자동으로는 Enable 상태로 복귀하지 않습니다. 코드에서 Enabled = true를 직접 호출하면 정상적으로 반영되어 Enable 상태로 돌아오는 것은 확인했습니다. 즉, 클릭 이후 상태를 되돌리는 내부 로직 자체가 동작하지 않는 것으로 보입니다.
공식 문서 확인 내용
공식 문서에는 아래와 같이 기능의 목적과 true/false 값의 의미만 기술되어 있고, Disable된 버튼이 언제/어떻게 다시 Enable로 복귀하는지에 대한 설명은 없습니다.
NestedClickEventPrevent는 연속 클릭으로 인한 Message Queue 누적, 시스템 성능 저하, DoEvents() 반복 호출 시 StackOverflow 예외를 방지하기 위한 기능이며, true 설정 시 중복 Click Event 발생을 허용하지 않음.
즉 "중복 클릭 방지"가 목적이라면 최초 클릭에 대한 처리(예: 클릭 이벤트 핸들러 실행)가 끝난 후에는 다시 Enable 상태로 돌아와 정상적인 클릭을 받을 수 있어야 정상일 것으로 예상되는데, 문서 상에는 이 복귀 시점/조건에 대한 언급이 전혀 없습니다.
재현 절차
1. SmartButton의 NestedClickEventPrevent를 True로 설정
2. 버튼을 1회 클릭
3. 클릭 직후 버튼이 Disable 상태로 전환됨
4. 별도로 Enabled = true를 호출하지 않는 한, Enable 상태로 자동 복귀되지 않음 (클릭 이벤트 핸들러가 종료된 이후에도 계속 Disable 상태로 남아있음)
환경
SmartX 버전: 5.0.0.14
플랫폼: Windows CE / IEC1000
언어/프레임워크: C#
문의 사항
- NestedClickEventPrevent = True 설정 시, 클릭 이벤트 처리가 끝난 후 버튼이 자동으로 다시 Enable 상태가 되는 내부 로직이 존재하는지
- 존재한다면 어떤 조건(이벤트 핸들러 종료 시점, 특정 타이머 등)에서 복귀되는 것이 정상이며, SmartButton에서 이 복귀가 발생하지 않는 것이 버그인지
- 만약 자동 복구 로직이 원래 없고 개발자가 직접 Enabled = true를 호출해야 하는 구조라면, 문서에 이 부분(사용 후 반드시 수동으로 재활성화해야 한다는 내용)이 왜 명시되어 있지 않은지
- 이 옵션을 안전하게 사용하기 위한 권장 패턴(예: 클릭 핸들러 마지막에 항상 Enabled = true 호출)이 있는지




