I''m using version 184.108.40.206 of syncfusion essential suite and have implemented a virtual grid. I''ve got keyboard navigation working, except that navigating by holding down an arrow key is *much* faster than navigating by holding down the tab key (which is sluggish).
// Insist on these keys
gridControl.WantTabKey = true;
gridControl.WantEnterKey = true;
gridControl.WantEscapeKey = true;
and I also handle QueryNextCurrentCellPosition.
Any idea why the speed difference?
ADAdministrator Syncfusion Team September 7, 2004 11:54 AM UTC
I can see this problem in a non virtual grid as well. We will have to look into what is causing this behavior. I will update this thread when I know more about the problem.
ADAdministrator Syncfusion Team September 8, 2004 10:19 AM UTC
It turns out that the only time we see a significant (noticible) slowness problem here is if we are using debug builds of our library.
Are you using debug builds also?
SSSimon SpruzenSeptember 8, 2004 12:18 PM UTC
The assembly manager is set to:
Assembly Version: 220.127.116.11
Configuration: Default prebuilt
Framework version: 1.1 (VS.Net 2003)
so I guess not.
ADAdministrator Syncfusion Team September 8, 2004 12:30 PM UTC
Just to be sure in the Solution Explorer window, if you open up the references and click the grid dll, does the property window show Release or Debug under the description?
If it is release, can you send sample project showing the problem? The reason is that we can only see this problem in debug, and it really appears to be down in the framework code when things slow down. So, we are scratching our heads here as to what may be causing this.
SSSimon SpruzenSeptember 9, 2004 05:08 AM UTC
Edited highlights from properties
Description: Prebuilt Release
Path: C:\Program Files\Syncfusion\Essential Suite\Assemblies\Syncfusion.Grid.dll
Runtime version: v1.1.4322
Because of the difficulty in sending you a test case (we have a lot of code in our virtual grid and it has a lot of dependencies), can you describe what''s causing the tab slowdown in your debug build, and I can see if I''m doing something in my code that could be setting this off. I''m handling keyboard navigation, but I''ve confirmed that it''s exactly the same code (of mine) that handles tab navigation and arrow navigation.
ADAdministrator Syncfusion Team September 9, 2004 06:16 AM UTC
Not really. We think the slow down is because of the form''s special handling of the tab key as opposed to the arrow key. The framework uses the tab to move control focus and you have to get at the Tab (through a ProcessDialogKey override) in a different manner than the arrow key (OnKeyDown). The slowdown only happens if there is an active cell control (does not happen when the cell is Static). So, we suppect the slowdown is being caused by moving the cell control around as the currentcell moves. The strange thing is that the exact same code does this in both the tab key and arrow cases.
Attached is the little sample I have been using to look into this problem.
Here are the results I see.
Using debug builds of our library, the test takes about 1.7 sec for the tab key and abount .78 secs for the arrow key. It does not matter if F5 or ctl+F5 is used to run it.
Using the release builds of our library, using ctl+F5 to run things, the tab key takes about .84 seconds and teh arrow key takes about .78 secs (Not really noticeable difference.) Using F5 to run with release library, the tab takes about .92 secs and the arrow takes about .79 secs. (This MAYBE slightly noticeable, but you would probably have to expect it to notice it.)
Do you see similar results with this sample? How does this compare with what you are seeing in your virtual grid?
SSSimon SpruzenSeptember 9, 2004 06:32 AM UTC
Thanks for excellent example.
Just running your solution:
1. Release syncfusion dlls, but DEBUG .net build of your example:
Right arrow: 0:796
2. Release syncfusion dlls, RELEASE .net build of your example:
Right arrow: 0:812
so a much better result, but you can still visually notice the tab slowness, even though then timings are much closer.
I wonder why the debug build of your example app should exhibit the slowdown, given that it''s running against the same DLL. CLR JIT differences?
SSSimon SpruzenSeptember 27, 2004 11:52 AM UTC
Any more info on this?
ADAdministrator Syncfusion Team September 27, 2004 01:06 PM UTC
No, we havent''t spend much time with it anymore since the release builds look accectable.
Regarding your last question that wasn''t answered: There are big differences especially with regards to garbage collection between debug and release builds. I don''t see this directly related to a TAB key but it''s just something where they might be extra steps in the CLR or things just add up.