Solved

Stop child flickering (MDI)

Posted on 2001-06-16
11
660 Views
Last Modified: 2006-11-17
I have an MDI-application with 3 loaded childs (maximized). When I want to show one of the other two childs it first appear as none-miximized then it maximizes and I get a very irritating delay in my program. How do I get rid of this flickering?

When I'm going to show an MDI child I use frmMdiChild1.zorder. Can I do it in an other way?
0
Comment
Question by:kpnkpn
  • 3
  • 3
  • 2
  • +2
11 Comments
 

Expert Comment

by:mufaza2000
ID: 6198122
The last Child you load will be on top.  The main thing to check, at least when I had that problem check you Child form properties to make sure that you don't have the windowstate set to how you want the default action of the Form to show up as.  If you have it set to maximize then it will Maximize when you show it, and then you have Windowstate set to normal in Code you will have that problem. So I would change the Windowstate to Maximized this helped me.  And also you might want to make sure that you are not showing the form to soon.  Maybe :

' Call to Child
Load cfrmChild
cfrmChild.Show

cfrmChild_Load Event:

' I have seen this show a form though
cfrmChild1.WindowState = vbMaximized

Hope it helps
0
 

Author Comment

by:kpnkpn
ID: 6198296
I have allready checked all the things you said. But I can't get rid of the window animation (from normal state to maximized). I have a listview at the left with three items. When I click on the first item i write: frmChild1.zorder. And then I get this irritating window animation.
0
 

Expert Comment

by:Askee
ID: 6198578
Why not this:

Maximise it when it's hidden then show it - he mdichild?
0
Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 

Expert Comment

by:Askee
ID: 6198579
Why not this:

Maximise it when it's hidden then show it - he mdichild?
0
 
LVL 15

Expert Comment

by:ameba
ID: 6198855
Set AutoShowChildren of your MDI form to False. Then you will be able to Load form without showing it:

   Load frmChild
   frmChild.WindowState = vbMaximized
   frmChild.Show

Please, do not accept this comment as answer if it is not for A grade.
0
 
LVL 8

Expert Comment

by:glass_cookie
ID: 6199541
Hi!

How about this (assuming the mdichild is called Child)...

'Add this code to the MDIchild form:

Private Sub Form_Load()
Child.Move 0, 0, MDIForm1.Width, MDIForm1.Height
End Sub

'Add this code to your MDIForm:

Private Sub MDIForm_Load() 'You can change it - not necessarily MDIForm_Load
Load Child
Child.WindowState = vbMaximized
End Sub

That's it!

glass cookie : )
0
 
LVL 8

Expert Comment

by:glass_cookie
ID: 6199551
That's the best I could do to remove as much maximising animation as possible.
0
 

Author Comment

by:kpnkpn
ID: 6199621
Thankyou very much for the answers. I apologies for being indistinct. The problem isn't when I'm about to load the childs. It's when I have loaded 3 childs and want the 2nd to be shown. I then use zorder() and thats when I get the window animation.
0
 
LVL 15

Expert Comment

by:ameba
ID: 6199662
> I then use zorder() and thats when I get the window animation.

Well, don't use frm.Zorder, use frm.Show
0
 
LVL 15

Accepted Solution

by:
ameba earned 150 total points
ID: 6199664
frm.Show
frm.SetFocus
0
 

Author Comment

by:kpnkpn
ID: 6199734
Thanks... I didn't think about that.
0

Featured Post

Networking for the Cloud Era

Join Microsoft and Riverbed for a discussion and demonstration of enhancements to SteelConnect:
-One-click orchestration and cloud connectivity in Azure environments
-Tight integration of SD-WAN and WAN optimization capabilities
-Scalability and resiliency equal to a data center

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Most everyone who has done any programming in VB6 knows that you can do something in code like Debug.Print MyVar and that when the program runs from the IDE, the value of MyVar will be displayed in the Immediate Window. Less well known is Debug.Asse…
Enums (shorthand for ‘enumerations’) are not often used by programmers but they can be quite valuable when they are.  What are they? An Enum is just a type of variable like a string or an Integer, but in this case one that you create that contains…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

839 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question