We are happy to let you know that starting with version 18.1 we provide a new Overlay Wait Form - a semi-transparent splash screen that runs in a background thread and prevents access to a control or form by displaying an overlay.
Here are some key features
• The Overlay wait form never locks up the main and operation threads when functioning in a separate thread.
• You can bind the Overlay form to any control, not just the main UI form.
• The transparent Overlay wait form overlaps the owner control in its entirety, and prevents an end-user from interacting with the underlying control.
• You can resize and move the main form while the Overlay form is visible (if you bind the Overlay wait form to a control and perform a lengthy operation asynchronously).
• Multiple animation options.
• Its custom painting mechanism allows you to draw the Overlay wait form manually.
For more information see our Blog Post and Documentationarticle.
If you already have version 18.1 installed, you can run the Demoto see it in action.
Hi DevExpress team,
Has any improvements been made around this area? We have an MFC frame hosting a managed user control. While showing the wait form, I can disable the control itself, so it goes grey and not processing button clicks, however the frame and its ribbon is enabled. I cannot get the ParentForm of MyControl, since its within an OLE host container, so I cannot disable it.
Is there any way to show the wait form as a modal dialog?
Thanks,
Gyorgy
Hello Gyorgy,
We do have plans to implement this functionality in the near future. As a current solution, we can recommend you find a way to manually disable your containers.
If you cannot access the instance of your container, you can try to disable it using WinAPI functions. Just invoke the EnableWindow function and pass the handle of your container.
when is the near future. It is silly that a user can click links and menu items while the wait form is active. It is impractical to try to disable controls manually whenever this is shown.
Hi Patrick,
Whilst this capability is not supported by SplashScreenManager, you can manually show the WaitForm as a modal dialog. Create an instance of the WaitForm and show it using the ShowDialog method. Does this solution meet your requirements?
I don't know. You tell me. We have a service that accesses the form and calls ShowWaitForm and then CloseWaitForm. We have a single instance that we call over and over instead of using a wait cursor. We also call SetWaitFormCaption and SetWaitFormDescription during this process for longer running tasks.
I guess this approach will not suit your needs since, if I understand you correctly, you don't want to freeze the main thread. Since WaitForm is shown in a separate thread, we can't introduce a functionality to show it as a pure modal dialog. However, SplashScreenManager has the overridden ShowFormmethod that allows locking the main form while WaitForm is shown. You can use this method to achieve the desired result.
I have created a simple project that illustrate this. Please check it.
This approach might work if you have just one main form. Once you would have multiple non-modal forms you would still need to lock all forms yourself. Thus showing the SplashScreenManager form modal would be a great help…
Also your collegue already stated that the feature is going to be implemented =)
Hi,
Yes, in the meantime you should manually disable other non-modal forms. If your application has only one form, you can use the suggested approach.
Let me know if you have additional questions.
In the meantime. So my oringial question was when is this going to be implemented. Still have no answer to this question.
I can't provide you with the exact time frame when this capability will be implemented. This ticket is still active. We will inform you once we have any results. Thank you for your patience.
Any news on this one? This is a really useful feature…
Hi Martin,
This functionality is not implemented yet. We will update this ticket once we have any progress.
is this feature available now?
and how to do it?
Hi Jassim,
I am afraid this functionality is not implemented yet. I will update this ticket as soon as we have any results.
Has this been implemented yet?
Hi Jeremy,
This functionality is not implemented yet. We will definitely update this ticket when we add this functionality to the SplashScreenManager component. Please watch for our announcements.
Hi Alisher
Is there a feature request we can track or vote for?
Jeremy,
You can leave your vote here. It will be great if you describe the scenario where you need the WaitForm dialog to be displayed as a modal dialog. In any case, as I noted in one of my replies here, since WaitForm is shown in a separate thread, it is technically difficult to introduce a functionality to show WaitForm as a pure modal dialog. But, SplashScreenManager has the overridden ShowFormmethod that allows locking the main form while WaitForm is shown:
SplashScreenManager.ShowForm(this, typeof(WaitForm1), true, true, SplashFormStartPosition.Default, new Point(0, 0), ParentFormState.Locked);
As a temporary solution, you can use this overload in your project.
Regards,
Alisher