문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
jcontrols_cf35:jnumpad [2016/03/18 22:50] Comfile Technology [Open 메소드 함수] |
jcontrols_cf35:jnumpad [2016/04/14 09:46] (현재) |
||
---|---|---|---|
줄 1: | 줄 1: | ||
+ | ====== jNumpad ====== | ||
+ | ''jNumpad'' 은 숫자를 입력받을 수 있는 콘트롤입니다. [[.:jbutton|jButtons]] 과 [[.:jLabel|jLabels]] 을 조합하여 만든 것으로 기존 Visual Studio 에는 없었던 콘트롤입니다. | ||
+ | |||
+ | Visual Studio에서는 jNumpad는 무조건 보이도록 되어 있지만, ''Visible'' 속성이 디폴트로 ''false''로 되어 있어서, Windows CE 디바이스에서는 보이지 않습니다. 이것을 보이도록 하려면 ''Visible'' 속성을 ''true''로 변경하면 됩니다. | ||
+ | |||
+ | 일반적으로 평소에는 jNumpad를 감추고 있다가, 필요할 때 ''Visible'' 속성을 ''true''로 만들면 마치 팝업창처럼 표시되어 숫자를 입력받을 수 있습니다. | ||
+ | |||
+ | 또는 [[.:jnumpad#open_method|Open 메소드 함수]] 이용해서 불러낼 수 있습니다. | ||
+ | |||
+ | |||
+ | |||
+ | ===== Properties ===== | ||
+ | |||
+ | ==== Button 속성 ==== | ||
+ | 각각의 버튼속성을 모두 조정할 수 있습니다. | ||
+ | |||
+ | {{ .:numpadchildproperties.png?nolink |}} | ||
+ | |||
+ | 여러분의 입맛에 맞게 각각의 버튼을 커스터마이징 할 수 있습니다. | ||
+ | |||
+ | {{ .:numpadcustomcancelbutton.png?nolink |}} | ||
+ | |||
+ | 여러개의 버튼을 동시에 선택해서 색상등을 변경할 수 있습니다. | ||
+ | |||
+ | {{ :jcontrols_cf35:numpadeditbuttons.mp4?854x480 }} | ||
+ | ==== ValueDisplay 속성 ==== | ||
+ | ''ValueDisplay'' 속성은 맨위에 있는 입력된 숫자를 표시하는 창에 대한 속성입니다. | ||
+ | |||
+ | {{ .:numpadcustomvaluedisplay.png?nolink |}} | ||
+ | |||
+ | ===== Methods ===== | ||
+ | |||
+ | ==== Open 메소드 함수 ==== | ||
+ | <code csharp> | ||
+ | public virtual void Open(Action<string> handleResult, string initialValue, string title, bool clearOnFirstEdit) | ||
+ | public virtual void Open(Action<string> handleResult, string initialValue, string title) | ||
+ | </code> | ||
+ | |||
+ | ''handleResult'' - 사용자가 Enter버튼을 눌렀을때 실행할 callback 함수\\ | ||
+ | ''initialValue'' - numpad'의 [[.:jnumpad#valuedisplay_속성|ValueDisplay 속성]]에 표시할 초기값\\ | ||
+ | ''title'' - numpad의 상단에 표시할 text\\ | ||
+ | ''clearOnFirstEdit'' - True로하면 최초 입력시, 처음에 표시된 초기값을 지웁니다. false로 하면 초기값에 추가하여 값을 입력할 수 있습니다.\\ | ||
+ | |||
+ | ''Open'' 메소드 함수는 jNumpad를 표시합니다. //Enter// 버튼을 누르면 jNumpad 를 종료하고, ''handleResult'' 콜백 함수를 호출합니다. //Cancel// 을 누르면 ''handleResult'' 콜백 함수를 호출하지 않고 곧바로 종료합니다. | ||
+ | |||
+ | === 사용예제 === | ||
+ | 아래 있는 예제는 2개의 ''jLabel''을 표시하고 있습니다. 하나는 정수 입력을 위한 ''_intLabel''이고, 다른 하나는 소수입력을 위한 ''_floatLabel''입니다. 이 둘은 같은 ''jNumpad''인 ''_numpad''를 호출하게 됩니다. 라벨을 클릭(터치)하면 ''Click''이벤트 핸들러가 콜되고, 이 핸들러에서는 ''_numpad''의 ''Open'' 매소드 함수를 호출합니다. | ||
+ | |||
+ | 유저가 //Enter//버튼을 클릭(터치)하면, 정수 입력시에는 ''SetIntLabel'' 메소드 함수를 호출하고, 실수 입력시에는 ''SetFloatLabel'' 메소드 함수를 호출합니다. | ||
+ | |||
+ | <code csharp> | ||
+ | private void SetIntLabel(string numpadResult) | ||
+ | { | ||
+ | _intLabel.Text = int.Parse(numpadResult).ToString(); | ||
+ | |||
+ | // Input is finished, re-enable decimal point | ||
+ | _numpad.DotButton.Enabled = true; | ||
+ | } | ||
+ | |||
+ | private void _intLabel_Click(object sender, EventArgs e) | ||
+ | { | ||
+ | // Disable decimal point for integers | ||
+ | _numpad.DotButton.Enabled = false; | ||
+ | |||
+ | // Open the numpad. Call SetIntLabel when the Enter button is pressed. | ||
+ | _numpad.Open(SetIntLabel, _intLabel.Text, "Integer"); | ||
+ | } | ||
+ | |||
+ | private void SetFloatLabel(string numpadResult) | ||
+ | { | ||
+ | _floatLabel.Text = float.Parse(numpadResult).ToString(); | ||
+ | } | ||
+ | |||
+ | private void _floatLabel_Click(object sender, EventArgs e) | ||
+ | { | ||
+ | // Open the numpad. Call SetFloatLabel when the Enter button is pressed. | ||
+ | _numpad.Open(SetFloatLabel, _intLabel.Text, "Floating Point"); | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | {{ .:numpadopenexample.mp4?854x480 }} | ||