View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Dave Peterson[_3_] Dave Peterson[_3_] is offline
external usenet poster
 
Posts: 2,824
Default placing controls

I think I'd just create the userform manually exactly the way I want to see it.

Then hide those controls that need to be "added" later.

And make them visible instead of creating them.



Luc Benninger wrote:

I am dynamically creating controls on a vba userform. Now I had to face the
fact, that even though I use integers to place these controls using their
TOP, LEFT, HEIGHT and WIDTH properties, there is almost always a slight
different from the actual view to what I try to draw. This is best seen if
there are several controls that have just a small space between them. The
userforms then look really improper.
Has somebody experience with this issue? Do I have to put my controls into a
certain grid to get better results?
Thanks for any hints.
Luc

To reproduce this issue create a userform, put following code into its code
panel and show it. The created rectangles SHOULD have a constant spacing of
2 point.

' *** start of code ***
Private Sub UserForm_Initialize()
With Me.Controls.Add("Forms.Image.1")
.Top = 5
.Left = 5
.Height = 50
.Width = 50
End With
With Me.Controls.Add("Forms.Image.1")
.Top = 7
.Left = 7
.Height = 46
.Width = 46
End With
With Me.Controls.Add("Forms.Image.1")
.Top = 9
.Left = 9
.Height = 42
.Width = 42
End With
With Me.Controls.Add("Forms.Image.1")
.Top = 11
.Left = 11
.Height = 38
.Width = 38
End With
With Me.Controls.Add("Forms.Image.1")
.Top = 13
.Left = 13
.Height = 34
.Width = 34
End With
With Me.Controls.Add("Forms.Image.1")
.Top = 15
.Left = 15
.Height = 30
.Width = 30
End With
End Sub
'*** end of code ***


--

Dave Peterson