RegistryRepositoryKey saving the wrong SF_FormHeight value


Author
Message
Edhy Rijo
E
StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)
Group: StrataFrame Users
Posts: 2.4K, Visits: 23K
Hi,

I have a main MDI form and I have setup the following properties:

  • RegistryRepositoryKey = HKEY_CURRENT_USER\Software\Progytech\Card Tracking System\MainDialog
  • RememberFormLocation = True
  • RememberFormMaximizedState = True
  • RememberFormSize = True

Now when I open this form, it will update the registry as follow:

Without doing any change to the Main Form size, I close the application and run it again, then new values are being saved in the registry, causing the form to keep showing up with the wrong height value.

Notice that the SF_FormHeight and SF_FormY values are the one that changed without me resizing the form.  Now this form has an UltraToolbarsManager acting as a RibbonBar and an UltraStatusBar which I believe may be causing this effect, since I do have other projects using the same Main Form without the infragistics controls and does not show this behavior. 

I have the following code in the OnLoad method of the form:

Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)

     MyBase.OnLoad(e)

     Dim applicationTitle As String = "Card Tracking System"

     Me.Text = String.Format("{0} ({1})", applicationTitle, My.Application.Info.Version.ToString)

     '-- Set the MDI backcolor to white

     _MDIClient.BackColor = System.Drawing.Color.White

     '-- Add the MDI

     Me.Controls.Add(_MDIClient)

     '-- Create a handle to the CurrentUserChanged event to update the user information shown in main form.

     AddHandler MicroFour.StrataFrame.Security.SecurityBasics.CurrentUserChanged, AddressOf UpdateCurrentUserInfo

     Me.UpdateCurrentUserInfo()

     '-- Set the Connection label on the status bar

     Me.UltraStatusBar1.Panels("sbConnectedTo").Text = "Connected to: " & GetApplicationActiveConnectionStringTitle(ConnectionManager.ApplicationKey, "")

End Sub

This Main Form was created based on the Main Form in the StrataFlix sample, you can see the MainFormSample.png file attached for a reference.

Is there any recommendation to solve this situation?

Edhy Rijo

Attachments
SF_RegistryEditor1.png (134 views, 51.00 KB)
SF_RegistryEditor2.png (132 views, 52.00 KB)
Main Form Sample.png (150 views, 71.00 KB)
Trent Taylor
Trent Taylor
StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)
Group: StrataFrame Developers
Posts: 6.6K, Visits: 6.9K
Edhy, this is going to be next to impossible to diagnose like this.  I will need a sample reproducing the behavior.  The reason is that code that you have within your dialog can influence this and alter the instantiation order or pre/post restoration values.  This is a very common feature that is used so I will definitely need to have a sample so that I can trace this to see where the issue resides.
Edhy Rijo
E
StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)
Group: StrataFrame Users
Posts: 2.4K, Visits: 23K
Hi Trent,

Sure, I understand, I will create a sample.

Edhy Rijo

Trent Taylor
Trent Taylor
StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)
Group: StrataFrame Developers
Posts: 6.6K, Visits: 6.9K
Thanks! Smile
Edhy Rijo
E
StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)
Group: StrataFrame Users
Posts: 2.4K, Visits: 23K
Hi Trent,

Attached please find a quick and dirty sample of my based ribbon project which uses the Infragistics UltraToolbarsManager as a Ribbon UI.

Many of my code has been either commented out or added an "Exit Sub" statement to make the sample functional to show the basic problem of the main form being resized each time the application is run until it will shrink completely.

I added 2 sample forms "First and Second Forms" in the ribbon first 2 buttons, so you can test.

After fixing any missing reference, all you need to do to test is just run the application and exit several times, you will noticed that the main form RegistryRepositoryKey "HKEY_CURRENT_USER\Software\Progytech\Ribbon_Sample\MainDialog" will change all the time the application is closed, and also will see the effect of the main form getting smaller every time it is ran.

Edhy Rijo

Edhy Rijo
E
StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)
Group: StrataFrame Users
Posts: 2.4K, Visits: 23K
A friendly reminder, just in case you guys have missed the sample posted in the previous thread.

Thanks!

Edhy Rijo

Trent Taylor
Trent Taylor
StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)
Group: StrataFrame Developers
Posts: 6.6K, Visits: 6.9K
We haven't forgotten about this and you were supposed to have been informed on this.  But we do not have the Infragistics version that you are using here, so we have not yet even gotten this going.  From a cursory glance, though, it is going to most likely be injected code that is causing the issue.  This is not reproducable in any other format and we have verified that all of the SF plumbing in this regard is working properly.  Is there anyway that you can reproduce this without Infragistics?
Edhy Rijo
E
StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)
Group: StrataFrame Users
Posts: 2.4K, Visits: 23K
Trent L. Taylor (01/29/2009)
But we do not have the Infragistics version that you are using here, so we have not yet even gotten this going.

I fogot to mention the version I have is NetAdvantage for .Net 8.1.20081.1000.  I was under the impression that if you have a newer version it would be a matter of just changing the references.

Trent L. Taylor (01/29/2009)
Is there anyway that you can reproduce this without Infragistics?

So far with other projects in which I am not using the UltraToolbarsManager I have not seen that side effect, so it must definately be related to that object being placed in the form which may be causing the code that saves the form size when closing to get the wrong values.

Maybe you could tell me which and where is the code responsible for saving the fomr's position on the registry and I could probably overwrite that method in the main form in order to debug it and find a fix.

Edhy Rijo

Trent Taylor
Trent Taylor
StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)
Group: StrataFrame Developers
Posts: 6.6K, Visits: 6.9K
It is the OnFormClosing method within the BaseForm class in the Business assembly.  There is a method called SaveSizeAndLocation that gets called.
Edhy Rijo
E
StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)StrataFrame VIP (4.6K reputation)
Group: StrataFrame Users
Posts: 2.4K, Visits: 23K
Hi Trent,

Thanks for the information.  I found the problem in the RestoreSizeAndLocation() method in this line of code:

'-- Set the size

If Me.RememberFormSize Then

     Me.Height = lnHeight

     Me.Width = lnWidth

End If

In this assignment Me.Height will not assume or accept the value in lnHeight, I would guess it has to do with the way the form is instantiated with the UltraToolbarsManager.  Here is what I did:

  • Override the RestoreSizeAndLocation() in my main form, of course I had to add the private Constant needed.
  • In my Onload, I added a call to Me.RestoreSizeAndLocation() which actually will be run twice and that seem to temporarily fix the problem.  Here is the code:
  •  

    Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)

         MyBase.OnLoad(e)

         Dim applicationTitle As String = "Card Tracking System"

         Me.Text = String.Format("{0} ({1})", applicationTitle, My.Application.Info.Version.ToString)

         '-- Set the MDI backcolor to white

         _MDIClient.BackColor = System.Drawing.Color.White

         '-- Add the MDI

         Me.Controls.Add(_MDIClient)

         '-- Create a handle to the CurrentUserChanged event to update the user information shown in main form.

         AddHandler MicroFour.StrataFrame.Security.SecurityBasics.CurrentUserChanged, AddressOf UpdateCurrentUserInfo

         Me.UpdateCurrentUserInfo()

         '-- Set the Connection label on the status bar

         Me.UltraStatusBar1.Panels("sbConnectedTo").Text = "Connected to: " & GetApplicationActiveConnectionStringTitle(ConnectionManager.ApplicationKey, "")

         '-- This code is used temporarily until a final solution is available for the main form honoring the

         ' registry saved size and location.

         Me.RestoreSizeAndLocation()

    End Sub

Probably you can suggest a better temporary approach that does not require to overwrite the RestoreSizeAndLocation().



Edhy Rijo

GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Similar Topics

Reading This Topic

Login

Explore
Messages
Mentions
Search