ComponentOne Reports for WPF
C1.C1Report Namespace / C1Report Class / DoEvents Property
Example

In This Topic
    DoEvents Property (C1Report)
    In This Topic
    Specifies whether the control should handle Windows messages while rendering reports.
    Syntax
    'Declaration
     
    Public Property DoEvents As Boolean
    public bool DoEvents {get; set;}
    Remarks

    Setting this property to true allows users to resize forms, click buttons, etc. while reports are being generated. This makes applications more responsive, and is necessary if you want to provide a "Cancel Report" button (otherwise users wouldn't be able to click the button until the report was done).

    Setting this property to false will cause reports to render slightly faster.

    Example

    The code below implements "Render" and a "Cancel" buttons attached to a C1Report component.

    The "Render" button checks whether the C1Report component is busy before starting to render a report. This is necessary because the user could click the "Render" button several times in a row, before the component got a chance to finish rendering the report. (Calling the C1Report.Render method while the component is busy throws an System.Exception).

    The "Cancel" button checks whether the component is rendering a report and sets the C1Report.Cancel property to true.

    _c1r.DoEvents = true;
                
    private void Render_Click(object sender, EventArgs e)
    {
       if (_c1r.IsBusy)
       {
           Console.WriteLine("Cannot render now, component is busy");
       } 
       else 
       {
           ppv.Document = c1r.Document;
       } 
    }
    private void Cancel_Click(object sender, EventArgs e) 
    {
       if (_c1r.IsBusy) 
       {
           _c1r.Cancel = true;
       } 
       else 
       {
           Console.WriteLine("No report to cancel");
       }
    }
    See Also