2010-12-07 4 views
1

내 데스크톱 응용 프로그램에서 PrintDialog를 사용하고 있습니다. 그것은 Button 또는 컨텍스트 메뉴에서 호출 할 때 잘 작동합니다. 그러나 printdialog 창이 활성화되어 있음에도 불구하고 PrintDialog를 호출하기위한 툴팁 버튼을 클릭하면 인쇄 버튼에 초점을 맞추지 못합니다. 인쇄물을 얻으려면 두 번 클릭해야합니다.인쇄 대화 초점 문제

내가 가진 솔루션은 BeginInvoke를 대리자와 함께 사용하여 async를 호출하고 이제 다음 코드로 포커스를 얻을 수있게되었습니다.

ShowThePrintDialog printD = 새로운 ShowThePrintDialog (p.ShowDialog); this.BeginInvoke (printD);

DialogResult를 캡처하고 printdialog에서 클릭 한 단추를 기반으로 계속 진행하고 싶습니다.

누구나 내게 BeginInvoke를 사용하는 동안 DialogResult를 캡처하는 아이디어를 줄 수 있습니까?

toolstripbuttons는 클릭 이벤트가 있기 때문에 완료되지 않습니다 라만

답변

1

PrintDialog는 포커스를 취득하지 않습니다. 타이머를 사용하여이 문제를 해결할 수 있습니다.

private void toolStripButtonPrint1_Click(object sender, EventArgs e) 
{ 
    timerPrint1.Start(); 
} 

private void timer1_Tick(object sender, EventArgs e) 
{ 
    timerPrint1.Stop(); 
    if (printDialog1.ShowDialog() == DialogResult.OK) 
    { 
     // do your stuf 
    } 
}