본 문서는
1. 연속 입력 기능 구현하기
1-1. 등속 입력 기능 구현하기
1-2. 가속 입력 기능 구현하기
순서로 진행합니다.
기존에는 버튼을 사용해 값(수치)을 연속으로 증가 또는 감소시키려면 버튼을 수동으로 여러 번 클릭해야 하는 불편함이 있었습니다. 이때 SmartX Framework의 SmartButton과 SmartPolygonButton 컴포넌트를 사용하면 간단한 설정 후 버튼을 누르고 있는 것만으로 편리하게 자동으로 값을 연속 증가 또는 감소시킬 수 있으며, 값이 증가/감소되는 속도를 등속 또는 가속하여 처리하실 수 있습니다.
SmartButton을 포함한 컴포넌트는 SmartListBox, SmartComboBox, SmartUpDown이 있으며, 각 컴포넌트에 포함된 SmartButton의 연속 입력 기능을 사용할 수 있습니다.
SmartListBox | ScrollUpButton, ScrollDownButton |
---|---|
SmartComboBox | ItemList.ScrollUpButton, ItemList.ScrollDownButton |
SmartUpDown | ButtonUp, ButtonDown |
SmartListBox | ScrollUpButton, ScrollDownButton |
---|---|
SmartComboBox | ItemList.ScrollUpButton, ItemList.ScrollDownButton |
SmartUpDown | ButtonUp, ButtonDown |
버튼 연속과 가속 입력 기능 개선 영상
SmartButton과 SmartPolygonButton 컴포넌트에는 .Net Compact Framework의 Button 컴포넌트와 달리 다양한 특수 기능이 추가되어 있습니다. 이 특수 기능은 각 컴포넌트의 SpecialFunction 속성에서 설정할 수 있으며, 연속 입력, 안전 입력, 연속+안전 입력 기능의 크게 3가지의 특수 기능을 지원합니다. 이중 연속 입력 기능은 연속 입력 간격을 등속 또는 가속하도록 설정할 수 있습니다. 아래 CASE를 확인하시기 바랍니다.
등속 입력 기능은 버튼 클릭을 유지하고 있으면, 자동으로 일정 간격마다 Button Click Event를 발생시키는 기능입니다. 자세한 구현 방법은 아래 STEP을 확인하시기 바랍니다.
코드 설명 | 버튼을 누르고 있을 경우 500ms(0.5s) 단위로 Click Event가 발생됨 |
---|
코드 설명 | 버튼을 누르고 있을 경우 500ms(0.5s) 단위로 Click Event가 발생됨 |
---|
※ SmartButton을 기준으로 설명하였으며, SmartListBox, SmartComboBox, SmartUpDown, SmartPolygonButton도 동일하게 설정하시면 됩니다.
- [STEP-1] 특수 기능 설정하기
특수 기능을 SpecialFunction 속성을 사용해 REPT로 설정합니다.
// SmartButton의 연속 입력 기능을 활성화
smartButton1.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.REPT;
- [STEP-2] 연속 입력 간격 설정하기
RepeatInterval 속성을 사용해 연속 입력 간격을 설정합니다.
// SmartButton의 연속 입력 간격을 등속으로 설정 : 500ms
smartButton1.RepeatInterval = 500;
1-2. 가속 입력 기능 구현하기
가속 입력 기능 역시 버튼 클릭 유지 시 자동으로 Button Click Event를 발생시키는 기능입니다. 단, 등속 입력 기능과는 다르게 연속 입력 횟수에 따라 구간을 설정해 연속 입력 간격을 변경할 수 있습니다. 즉, 입력 횟수에 따라 Button Click Event 발생 간격을 조절할 수 있습니다. 자세한 구현 방법은 아래 STEP을 확인하시기 바랍니다.
코드 설명 | 버튼을 누른 상태를 유지하는 경우 아래 순서대로 Click Event가 발생합니다. Click Event가 300ms(0.3초) 간격으로 10회 발생 후 → 100ms(0.1초) 간격으로 10회 발생 후 → 10ms(0.01초) 간격으로 계속 발생함 |
---|
코드 설명 | 버튼을 누른 상태를 유지하는 경우 아래 순서대로 Click Event가 발생합니다. Click Event가 300ms(0.3초) 간격으로 10회 발생 후 → 100ms(0.1초) 간격으로 10회 발생 후 → 10ms(0.01초) 간격으로 계속 발생함 |
---|
※ SmartButton을 기준으로 설명하였으며, SmartListBox, SmartComboBox, SmartUpDown, SmartPolygonButton도 동일하게 설정하시면 됩니다.
- [STEP-1] 특수 기능 설정하기
특수 기능을 SpecialFunction 속성을 사용해 REPT로 설정합니다.
// SmartButton의 연속 입력 기능을 활성화
smartButton1.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.REPT;
- [STEP-2] 가속 구간 및 입력 횟수에 따른 연속 입력 간격 설정하기
SmartX.SmartButton.RepeatAccelerate 구조체를 사용해 가속 구간 및 입력 횟수에 따른 연속 입력 간격을 설정할 수 있습니다. 구간 설정이 완료되면 RepeatIntervalAccelerate 속성에 구조체 변수를 설정해 가속 입력 기능을 구현할 수 있습니다.
// 버튼 클릭 유지 시 3단계로 가속하도록 설정
SmartX.SmartButton.RepeatAccelerate[] repAcc = new SmartX.SmartButton.RepeatAccelerate[3];
// 가속 구간 1. 처음 10회 입력하는 동안 연속 입력 간격 : 300ms
// 입력 횟수
repAcc[0].iClickCount = 10;
// 연속 입력 간격
repAcc[0].iInterval = 300;
// 가속 구간 2. 다음 10회 입력하는 동안 연속 입력 간격 : 100ms
// 입력 횟수
repAcc[1].iClickCount = 10;
// 연속 입력 간격
repAcc[1].iInterval = 100;
// 가속 구간 3. 이후 연속 입력 간격 : 10ms
// 입력 횟수. 마지막 입력 횟수는 어떤 값을 넣어도 동일한 연속 입력 간격을 유지합니다.
repAcc[2].iClickCount = 10;
// 연속 입력 간격
repAcc[2].iInterval = 10;
// 연속 입력 간격을 입력 횟수에 따라 가속하도록 설정
smartButton1.RepeatIntervalAccelerate = repAcc;