How to Show a window at a certain location


Hey, I have a VB.NET form that I am generating as a child window to another VB.NET form.  On startup, I want to make it visible at a certain location (stored in an INI file).  So I get the x,y from the INI file, and run the following code:

m_ChildWindow(c).MdiParent = Me
m_ChildWindow(c).Show()
m_ChildWindow(c).SetBounds(r.X, r.Y, r.Width, r.Height)

the problem is that the user can see the form appear in the default position, then quickly move over to the desired position.  To get rid of this flicker, I tried to reverse the Show and SetBounds commands, but then the Show seems to cancel the position I set it to.  Is there any way to have a form appear where I want it to, w/o moving it after it has appeared?
riceman0Asked:
Who is Participating?
 
AlexFMCommented:
Initial window position should be set in the Load event handler in the form itself. Pass desired window coordinates to the child window using method or property, and use these valies in the Load event handler.

m_ChildWindow(c).MdiParent = Me
m_ChildWindow(c).SetDesiredPosition(r.X, r.Y, r.Width, r.Height)   ' SetDesiredPosition  is your function which keeps position to use it in Form_Load
m_ChildWindow(c).Show()

0
 
razoCommented:
y dont u set the form transparent then show,set bounds and then get it back to its normal background....u could use the opacity from 0 to 100
0
 
DjDezmondCommented:
I normally use .Left and .Top to set the windows position. Dont know the pros and cons between the two methods, but I've never had any problems with it flicking between positions.

You can use .show after setting the position also.

Try using this method and let me know how you get on...
0
 
Kinger247Commented:
or make it invisible then visible after positioning.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.