2008-11-13 5 views
1

툴 스토아 컨테이너 및 툴 스트립 버튼이있는 폼에 여러 컨트롤 (텍스트 상자 및 콤보 상자)을 저장하고 편집 취소 할 수 있습니다. 우리는 .Net 3.5 SP1을 사용하고 있습니다.
control.lostfocus 및 control.leave 이벤트에 많은 로직이 기록되어 있습니다. 이 이벤트는 툴팁 버튼을 클릭 할 때 호출되지 않습니다. 이러한 단추 중 하나를 누르면이 이벤트를 수동으로 호출하는 방법이 있습니까?컨트롤에서 LostFocus 이벤트를 수동으로 발생 시키십시오.

감사합니다.
키 쇼어

이 내가 문제를 해결하는 방법이다 [편집]

. 포인터를 주셔서 감사합니다 Chris Marasti-Georg. 버튼 클릭 이벤트에서 toolstripbutton에는 포커스 이벤트가 없으므로 버튼 대신 툴팁에서 포커스를 호출합니다. 우리는 버튼을

((ToolStripButton) 보낸 사람) .Owner.Focus()

-Kishore

+0

다행이 도움이됩니다. configurator는 좋은 지적입니다. LostFocus/Leave 로직을 클릭 가능한 핸들러에서 호출 할 수 있도록 다른 메소드로 이동하는 것이 좋습니다. 그냥 생각. –

답변

4

버튼의 클릭 이벤트를들을 수 있으며 핸들러에서 포커스 메서드를 호출 할 수 있습니다. 그것은 (잘하면) 이전에 초점을 맞춘 컨트롤이 올바르게 응답하게합니다. 각 버튼의 클릭 이벤트에 다음 처리기를 추가 :

private void ButtonClick(object sender, EventArgs e) { 
    if(sender != null) { 
     sender.Focus(); 
    } 
} 
1

당신은 OnLostFocus 및 OnLeave를 호출 한 후 이러한 컨트롤을 확장 할 수 있습니다를 사용하여 배치되어있는 ToolStrip에 액세스 할 수 있습니다 기본 클래스의 보호 된 메서드 ...

1

내가 이벤트 핸들러 외부 방법에 로그인을 이동하고 그 메소드를 호출하는 게 좋을 것 ...

관련 문제