Link to home
Start Free TrialLog in
Avatar of jana
janaFlag for United States of America

asked on

X Y Position in VB

We have a form and want the form to be display in specific x y based on the original calling form.
Avatar of jana
jana
Flag of United States of America image

ASKER

Sorry about.  It is in VBA.  We have a form created in VBA and want to display the form in top of a specific Text Box.  We were wondering if some sort of X/Y positioning where we can find the X/Y values of the master form then calculate it to the Text Box.
Here is a sample .
1.zip
Avatar of jana

ASKER

Let me provide an example, visually of what we are trying to accomplish.

The image provided is a 2 part image.  The first part display both Forms seperated but how we want it to be.  The second part display the Form2 where we want, under the Text Box.

The problem facing is if the user moves the window, we can't seem to coordinate the new x/y values.

Please keep in mind the this isn in VBA, no VB

Can this be possible?

Thanx !!

Image:
User generated image
The following sample calculates the new x/y values, if the user moves the window.
2.zip
ASKER CERTIFIED SOLUTION
Avatar of vb_elmar
vb_elmar
Flag of Germany image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of jana

ASKER

Worked excellently !

Can you give us a bit of explanation of how does it work so we can understand it:

Private Sub Command1_Click()
Form2.Show

TextboxHeight = Form1.Text1.Height
Form1BlueCaptionFieldHeight = 20 * 15

Form2.Top = Form1.Top + Form1BlueCaptionFieldHeight + Form1.Text1.Top + TextboxHeight
Form2.Left = Form1.Left + Form1.Text1.Left

End Sub

Open in new window

Avatar of jana

ASKER

We just stared to work with your recommendation, but noticed that thers really 3 forms: Form1 is the background form, Form2 would be the Customer form and Form3 would be the combo box.

With this in mind, what changes should we make to your calculations?
Form2.Show                                                    'makes the window visible
SetWindowPos Form2.hwnd, -1, 0, 0, 0, 0, 3 'shows Form2 permanently in foreground

TextboxHeight = Form1.Text1.Height
Form1BlueCaptionFieldHeight = 20 * 15 ' 15 Twips per pixel

Form2.Top = Form1.Top + Form1BlueCaptionFieldHeight + Form1.Text1.Top + TextboxHeight
Form2.Left = Form1.Left + Form1.Text1.Left
User generated image
Avatar of jana

ASKER

Thank you.

What about our doubt in ID: 37804064, when in 3 forms (see pic).  The thing is when started working with the solution, the reality is that its 3 forms.  As shown in the pic, its the same issue but with the background as form1, form2 as the Customer form and the last form3 as the form that we want to make it keep location as in the first example.

User generated image
Avatar of jana

ASKER

Note form2, at the moment and will cannot be move out of form1; always moving within form1.
I converted Form1 to a MDIform and I set the "MDIchild"
property  of Form2 to "True". So Form2 cannot be moved out of Form1.

The sample now has 3 Forms:
1) MDIForm (Form1)
2) Form2
3) Form3
User generated image6.zip
Avatar of jana

ASKER

Thanx