2011-01-21 2 views
3

AutoCompleteMode = suggest ComboBox 있고 KeyPress 이벤트를 이렇게 처리하십시오.Combobox onkeypress 이벤트의 자동 완성 기능은 Enter 키를 먹습니다.

private void searchBox_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    if (e.KeyChar == (char)Keys.Return) 
    { 
     // do stuff 
    } 
} 

그러나 Enter 키를 catch하지 않습니다. 자동 완성 드롭 다운이 완벽하게 작동하기 때문에 다른 모든 것을 포착합니다.

또한 http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/2db0b540-756a-4a4f-9371-adbb92409806 제안 된 제안을 시도한 폼의 KeyPreview 속성을 true로 설정하고 양식의 KeyPress 이벤트 처리기에서 중단 점을 넣을 :

private void Form_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    e.Handled = false; 
} 

그러나 양식의 처리기가 열쇠를 입력하십시오!

어떤 제안이 있습니까?

(자동 완성을 비활성화하면 Enter 키를 잡습니다.)

답변

4

Difference between KeyDown and KeyPress

(나는 자동 완성을 사용하지 않도록 설정하면, 그것은 Enter 키를 잡는다).

void SearchBox_KeyDown(object sender, KeyEventArgs e) 
{ 
    if(e.KeyCode == Keys.Enter) 
    { 
     // Do stuff 
    } 
} 

KeyPress 이벤트에 대한 또 다른 흥미로운 점은 다음과 같습니다 그것은 심지어 어획량이 콤보 상자는 아이템이없는 경우에 autocompete으로 키를 입력! :-)

+0

그게 전부 야! 고마워요 :) –

+0

이 솔루션은 또한 델파이와'OnKeyPress'와'OnKeyDown' 이벤트에서 작동합니다. –

관련 문제