2012-07-23 2 views
1

데이터 창 내부에 DropDownListBox를 만들었습니다.PowerBuilder 데이터 창 내 DropDownListBox

항목 변경시, 해당 항목의 값을 INI 파일의 해당 드롭 다운에 저장하고 저장합니다.

내 오픈 이벤트에서 setitem을 사용하여 해당 드롭 다운에 저장된 값을 설정합니다. 여기에서 문제는 드롭 다운에서 선택한 항목의 해당 색인에 setfocus가 발생하지 않는다는 것입니다.

또한 SetRow(), setcolumn(), SetText()를 사용하여 선택한 텍스트의 초점 맞추기를 만들었습니다. 이 문제는 제가 100 개 이상의 아이템을 가지고 있다는 것입니다. 선택한 값이 중간에있을 때 인덱스 # 50이라고 가정 해 봅시다. ScrollBar 포커스는 여전히 인덱스 # 50이 아니라 최상위 인덱스 # 1에 있습니다.

어떤 도움이 필요합니까? 감사.

+0

Powerbuilder. 와우! 아직 21 세기의 PowerBuilder를 프로그래밍 한 사람이 있습니까? – paulsm4

+1

물론, 여전히 좋습니다 :) – Maximus

+0

VB.Net을 사용해 보았지만 Power Builder를 사용하여 더 빠르게 프로그래밍 할 수 있습니다. – Sid

답변

2

1 ) 대신 DDLW의 DDDW를 사용해보십시오)

dw.SetRedraw(false) 
dw.SetItem(...) 
dw.SetRedraw(true) 

2 SetRedraw

함께 플레이 해보십시오. 그리고 정수형 인덱스 열과 함께 DDDW를 사용하십시오. 가끔 빌더가 문자열 "keys"로 실패합니다.

+0

처음에 dddw를 사용하고 있었지만 ddlb가 발생했습니다. 레지스트리에서 검색 한 값의 For 루프로 ddlb를 채우기 때문에 dddw를 사용하지 않았습니다. – Sid

+0

SetRedraw가 도움이되지 않았습니다. FYI – Sid

+0

그리고 어떻게 ddlb를 폴 레이트 했습니까? 그리고 언제? – Maximus

0

A) 데이터 윈도우에서 DDDW 편집 스타일을 사용하면 훨씬 쉽습니다. 드롭 다운에서 초기 값을 설정하기 위해 SetItem (행, 열, 값)을 수행하면됩니다.

B) 나는 "효과적인 UI 디자인"이라는 목록 상자에서 100 개 이상의 항목을 호출하지 않을 것이라고 말했습니다. Google 검색 페이지에서 볼 수있는 것처럼 검색 기능을 사용하여 편집 상자로 변환 할 것입니다.

+0

글꼴 스타일 옵션을 에뮬레이트하고 있습니다. – Sid