Completed
Last Updated: 01 Nov 2023 12:53 by ADMIN
Release R3 2023 (LIB 2023.3.1101)
vamsee
Created on: 12 Oct 2023 13:21
Category: UI for WinForms
Type: Bug Report
0
RadControl/TPF: Floods the windows message queue with WM_TIMER messages

To reproduce RadGridView (or other RadControl) flooding WM_TIMER messages do the following

1. Create a simple WinForms project with a RadGridView in it.

2. Open spy++ tool (it comes with Visual Studio).

3. Attach the process that is running the WinForms and choose to display its messages.

4. You should now see a lot of WM_TIMER messages as shown in the gif file.

Attached Files:
2 comments
ADMIN
Dess | Tech Support Engineer, Principal
Posted on: 01 Nov 2023 12:53

Hi,

I would like to follow up with more details about the functionality of timers that is improved with the latest changes.

Each RadControl uses a Timer internally to enrich the end-user experience and make the control inner elements interactive: to track the position of the mouse cursor, update the visual state of its inner elements and to raise bubble and tunnel mouse events in the elements hierarchy.
Before the fix, the Timer was not used optimally, which means that it was not stopped each time the mouse leaves the surface of the control. This could lead to multiple unnecessarily running Timers in the application.
With the fix, we have optimized the way this specific Timer is working and now only one should be running at a time and only when the mouse is over a RadControl.
Note that each control has its own implementation specifics and some of them require a timer to be running to achieve its behavior. Some examples of timers that are required to be used: RadWaitingBar when it is started, all pop-ups, animation effects, Panorama LiveTile element, etc.

Regards,
Dess | Tech Support Engineer, Principal
Progress Telerik

Love the Telerik and Kendo UI products and believe more people should try them? Invite a fellow developer to become a Progress customer and each of you can get a $50 Amazon gift voucher.

ADMIN
Dess | Tech Support Engineer, Principal
Posted on: 12 Oct 2023 13:55

Hi, Vamsee,

Thank you for bringing this to our attention. I would like to give some more details why these messages occur and why they occur in such a great number. All controls from the Telerik UI for WinForms suite are built on top of the Telerik Presentation Framework which  provides rich UI capabilities compared to the standard WinForms controls. Any control in the Telerik UI for WinForms suite is composed of RadElement instances arranged in a logical tree.  This allows high level of customizing and styling/theming mechanism. The ComponentInputBehavior is responsible for the mouse detecting at a global level for every control and its elements. Thus, features like selection, hover effect, or any mouse interaction are being accomplished. For this purposes, the behavior uses two timers which explains the WM_TIMER messages. If these messages are terminated, the input behavior would not be able to detect the mouse handling in a proper way and core functionality for the controls is not guaranteed that will work properly. The more controls you have on the form, the more timer messages will be observed. 

We will do our best to provide a solution accordingly. Make sure that you follow the item in order to get notified once any status changes occur.

Please excuse us for the inconvenience caused.

Regards,
Dess | Tech Support Engineer, Principal
Progress Telerik

Love the Telerik and Kendo UI products and believe more people should try them? Invite a fellow developer to become a Progress customer and each of you can get a $50 Amazon gift voucher.