placing controls
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 *** |
placing controls
It must be a rounding issue I suppose. Somewhere behind the scenes Excel has
to round your given values to the nearest available pixel. I don't know of a way to work out when & which way that rounding will go. But FWIW, you'll see better results if you increment by 1.5 points or 3 points instead of 2. Regards, Vic Eldridge "Luc Benninger" <lb (at) zignet.ch wrote in message ... 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 *** |
placing controls
Great Vic! The values for Width and Height properties of the controls must
be a multiple of 0.75! Thanks, Luc "Vic Eldridge" wrote in message m... It must be a rounding issue I suppose. Somewhere behind the scenes Excel has to round your given values to the nearest available pixel. I don't know of a way to work out when & which way that rounding will go. But FWIW, you'll see better results if you increment by 1.5 points or 3 points instead of 2. Regards, Vic Eldridge "Luc Benninger" <lb (at) zignet.ch wrote in message ... 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 *** |
All times are GMT +1. The time now is 05:16 AM. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com