2009-06-03 6 views
3

나는 자동 완성을 사용하는 많은 TextBox 컨트롤이있는 응용 프로그램을 가지고 있습니다. 각각 AutoCompleteMode.CustomSource을 사용하여 연결된 AutoCompleteStringCollection에서 자동 완성 텍스트를 가져옵니다.편집 가능한 TextBox에 대한 자동 완성 목록을 만들려면 어떻게해야합니까?

사용자가 TextBox에 새 값을 입력하면 연결된 AutoCompleteStringCollection에 추가되고 세션이 끝나면 모든 해당 모음이 사용자의 홈 디렉토리에있는 파일로 유지됩니다.

문제는 해당 컬렉션에서 오류를 수정할 수있는 방법이 없다는 것입니다. IE에서 자동 완성 컨트롤이있는 입력 컨트롤을 사용하면 자동 완성 목록의 항목으로 스크롤하고 Del을 눌러 제거 할 수 있습니다. NET 컨트롤에서는 작동하지 않습니다.

나는 이것을 위해 내 자신의 UI를 구현하는 것을 피하고 싶습니다. 내가 붙어 있니? 이것을 볼 수있는 방법이 있습니까?

+0

내 취향이지만 어떻게 제안을 받고 있습니까? 자동 완성을 개발하는 유일한 경험은 ASP.NET AJAX 툴킷을 통해 이루어지며,이 구성 요소는 웹 서비스에서 제안을 얻은 이후로 편집 할 방법이 없을 것이라고 생각합니다. 물론 나는 틀릴 수도 있습니다. –

+0

그는 다양한 소스의 AutoComplete에 대한 지원 기능이 내장 된 ASP.NET이 아닌 Windows Forms를 사용하고 있습니다. –

답변

2

사용 후 불행히도이 작업을 수행 할 수있는 방법이 없습니다. 나는 P/Invoking 기본 FindWindowEx/EnumChildWindows를 시도해 실제 드롭 다운 핸들을 얻을 수 있는지 알아 보았지만 실패했다. (누군가이 문제를 해결할 수 있다면 알려줘!). 희소식은 자동 완성이 실제로 당신 자신이 구현해야만하는 것은 아니지만 (실제로 좋지는 않지만 끔찍하지는 않습니다) 실제로는 자동 완성을 돕기 위해 P/Invoke 될 수있는 SHAutoComplete이라는 Win32 함수가 있습니다. 너무 흥분하지 마라. 단지 P/Invoking만큼 간단하지 않고 끝내야하기 때문이다. 그러나 엄청난 도움이되는 CodeProject article이 있습니다.

+1

이것은 뛰어난 문서이며 감사합니다. 이것은 분명히 파기가 될 것입니다. –