2011-11-01 4 views
0

사용자 컨트롤 창 (Windows 사용자 지정 컨트롤 라이브러리)에 그림 상자가 있습니다. Form의 Enter 이벤트 및 Leave 이벤트의 일부 기능을 제공합니다.C 입력/종료 이벤트를 무시하는 방법

이제 샘플 응용 프로그램에 두 개의 컨트롤 인스턴스가 있습니다. 그래서 내 샘플 응용 프로그램을 실행할 때 주먹 컨트롤이 선택되고 입력 이벤트가 트리거되고 두 번째 컨트롤을 선택하면 첫 번째 휴가와 두 번째 이벤트가 트리거됩니다.

이제 두 번째 컨트롤의 picturebox를 선택 (클릭)하면 이벤트가 트리거되지 않습니다. 즉 컨트롤 폼이 이벤트를받지 못하는 것입니다.

컨트롤에서 (그림 상자 또는 컨트롤에서) 아무 것도 클릭하지 않으면 입력 이벤트가 트리거되어야합니다.

어떻게 하시겠습니까?

+0

http://stackoverflow.com/questions/3562235/panel-not-getting-focus/3562449#3562449 –

답변

2

그림 상자에 포커스를 얻을 수 없습니다. 따라서 그것을 클릭해도 이전 컨트롤에서 포커스를 벗어나지 않으므로 이벤트를 트리거하지 않습니다.

연결된 포커스 가능 컨트롤에 수동으로 포커스를주는 그림 상자에 클릭 핸들러를 추가해야합니다.

private void PictureBox_Click(object sender, EventArgs e) 
{ 
    focusableControl.Focus(); 
} 
관련 문제