L
Luc Benninger
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 ***
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 ***