Hello,
I downloaded the 13.1 Release and used the Version Utility to upgrade my project and made no other code changes.
I noticed 2 things after the upgrade to 13.1
1) By default when I load a grid I set the ActiveRow = Null as I don't want the first row to be highlighted. Now every grid in my application has the first row highlighted as if it is the Active Row. Here is a sample of the code I use.
this.ugGrid1BindingSource.DataSource = MyObject; this.ugGrid1.DataBind(); this.ugGrid1.ActiveRow = null;
2) I really like how the grids now support scrolling with the Pan Gesture. However I noticed on a Microsoft Surface tablet when I use the pen or my finger I am no longer able to simulate a mouse right click by either press and hold or when I press the button on the pen and tap the screen. Both of these actions used to simulate a mouse right click and would bring up a context menu on objects that had them. In the grid I am using a MouseDown event for the context menu. In MdiTabManager and Toolbars I am using the built in default functionality. I was looking at the documentation and it looks like I may need to capture the PressAndTapGesture and/or PressAndHoldGesture events? Please advise.
Thanks in advance.
An initial test of setting SyncWithCurrencyManager to false is working. We are going to test additional grids in our application and will let you know if we find any issues. Thank you very much for helping us resolve this issue.
Hi,
I just wanted to let you know that we have looked unto this issue and it turns out that we cannot fix it. The current behavior is correct, even thought it's a breaking change.
This came about as the result of a bug fix. The original bug happened at design-time. Basically, when you set the grid's DataSource, the grid would perform a bunch of metrics calculations and as an incidental part of that process, the grid also ended up synching it's ActiveRow with the current position of the DotNet CurrencyManager. This was never intentional, and performing these metrics calculations at the time of binding, before the grid painted, cause the design-time experience to be unstable. Simply dirtying anything on the form would cause the grid's column widths to change slightly ever time. So the metrics calculations are now deferred until after the grid paints.
I know you said the BeginInvoke workaround was not ideal, so I have a couple of other suggestions.
1) Set SyncWithCurrencyManager to false. This is much simpler and easier than BeginInvoke and unless you are binding the grid and some other controls to the same data source and you need them to stay in synch, it won't make any difference in your app - in fact, it will be slightly more efficient.
2) Use the grid's Paint event:
bool flag = false; private void ultraGrid1_Paint(object sender, PaintEventArgs e) { if (false == this.flag) { this.flag = true; this.ultraGrid1.ActiveRow = null; } }
Thanks guys. Hopefully its a quick fix that can be put into a Service Release.
Hi acozzi,
I created CAS-114766-W9L3R5 to track this issue and I have submitted it to our engineers for them to research.
Off the top of my head, I'm not sure why this behavior changed. Most likely it was an unintentional change that was the result of some other bug fix.
I'm going to ask Infragistics Developer Support to create a case for you and write this up for developer review so we can investigate further, find out exactly what changed, and why, and see if there's anything we can do about it.