Подождите, пока winform загрузится, прежде чем выполнять следующее действие? - PullRequest
0 голосов
/ 04 октября 2011

Приложение Winform содержит одну форму с элементом управления reportViewer.Когда форма инициализируется, отчет генерируется, но когда я пытаюсь программно запустить PrintDialog в средстве просмотра отчетов, я получаю сообщение об ошибке «Недопустимые операции из-за текущего состояния объекта».

Когда я комментируюиз строки PrintDialog форма отчета показывает нормально.Я думаю, что проблема заключается в отставании, поскольку она генерирует форму / отчет.Можно ли дождаться загрузки формы перед запуском PrintDialog?

Выдержка из кода:

this.reportViewer1.RefreshReport ();this.reportViewer1.PrintDialog ();

ОБНОВЛЕНИЕ

Решение (как предложено):

private void form_load(...)
{
    createReport;
    this.reportViewer1.RefreshReport();
}

private void reportViewer1_RenderingComplete(...)
{
    this.reportViewer1.PrintDialog();

}

1 Ответ

1 голос
/ 04 октября 2011

Эта статья предполагает, что вы не можете / не должны вызывать PrintDialog, пока не сработает событие RenderingComplete:

http://msdn.microsoft.com/en-us/library/microsoft.reporting.winforms.reportviewer.renderingcomplete(v=vs.80).aspx

http://social.msdn.microsoft.com/Forums/en-US/vsreportcontrols/thread/a8993f3e-7787-4e0a-b32f-fcfbf8df8001/

...