ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   programatically inserting a control within a frame (https://www.excelbanter.com/excel-programming/399916-programatically-inserting-control-within-frame.html)

Wes

programatically inserting a control within a frame
 
I'm creating a section of a userform on the fly. I can create a frame using
the code:

Set MyControl = Controls.Add("Forms.Frame.1")
With MyControl
.width = 200
.height = 400
.top = 160
.left = 2
.zorder (1)
end with

now I want to create a textbox and a label within this frame (actually a
bunch of them). Anytime a create the textboxes or labels, it goes behind the
frame. I used zorder(0) on the textbox. I also switched the zorder of the
frame and textbox. (Not sure if this would have had anything to do with it
anyhow.)

Thanks in advance for your help

Andy Pope

programatically inserting a control within a frame
 
Hi,

You need to add the controls to the frame rather than the userform.

Dim MyControl As MSForms.Frame
Dim MyLabel As MSForms.Label

Set MyControl = Controls.Add("Forms.Frame.1")
With MyControl
.Width = 200
.Height = 400
.Top = 160
.Left = 2
.ZOrder (1)
.Visible = True
End With

Set MyLabel = MyControl.Controls.Add("Forms.Label.1")
With MyLabel
.Width = 100
.Height = 40
.Top = 10
.Left = 2
.Caption = "Hello World"
.Visible = True
End With

Cheers
Andy
--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info
"Wes" wrote in message
...
I'm creating a section of a userform on the fly. I can create a frame
using
the code:

Set MyControl = Controls.Add("Forms.Frame.1")
With MyControl
.width = 200
.height = 400
.top = 160
.left = 2
.zorder (1)
end with

now I want to create a textbox and a label within this frame (actually a
bunch of them). Anytime a create the textboxes or labels, it goes behind
the
frame. I used zorder(0) on the textbox. I also switched the zorder of
the
frame and textbox. (Not sure if this would have had anything to do with it
anyhow.)

Thanks in advance for your help



Peter T

programatically inserting a control within a frame
 
By default new controls are added to the form. If you want them added to
some other container, eg a frame or multipage, you need to qualify.

Set myControl2 = Me.Frame1.Controls.Add(etc 'if Frame1 was added at design
time
or
Set myControl2 = Me.Controls("Frame1").Controls.Add(etc

or in your case you could do
Set myControl2 = MyControl.Add(etc

or even

With MyControl
.Left = 2
.Controls.add(Forms.Textbox.1") ' note the preceding dot
.BackColor = 255
End With
End with

Regards,
Peter T

"Wes" wrote in message
...
I'm creating a section of a userform on the fly. I can create a frame

using
the code:

Set MyControl = Controls.Add("Forms.Frame.1")
With MyControl
.width = 200
.height = 400
.top = 160
.left = 2
.zorder (1)
end with

now I want to create a textbox and a label within this frame (actually a
bunch of them). Anytime a create the textboxes or labels, it goes behind

the
frame. I used zorder(0) on the textbox. I also switched the zorder of

the
frame and textbox. (Not sure if this would have had anything to do with it
anyhow.)

Thanks in advance for your help




Wes

programatically inserting a control within a frame
 
Thanks very much for your help this works perfect.

Wes

"Andy Pope" wrote:

Hi,

You need to add the controls to the frame rather than the userform.

Dim MyControl As MSForms.Frame
Dim MyLabel As MSForms.Label

Set MyControl = Controls.Add("Forms.Frame.1")
With MyControl
.Width = 200
.Height = 400
.Top = 160
.Left = 2
.ZOrder (1)
.Visible = True
End With

Set MyLabel = MyControl.Controls.Add("Forms.Label.1")
With MyLabel
.Width = 100
.Height = 40
.Top = 10
.Left = 2
.Caption = "Hello World"
.Visible = True
End With

Cheers
Andy
--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info
"Wes" wrote in message
...
I'm creating a section of a userform on the fly. I can create a frame
using
the code:

Set MyControl = Controls.Add("Forms.Frame.1")
With MyControl
.width = 200
.height = 400
.top = 160
.left = 2
.zorder (1)
end with

now I want to create a textbox and a label within this frame (actually a
bunch of them). Anytime a create the textboxes or labels, it goes behind
the
frame. I used zorder(0) on the textbox. I also switched the zorder of
the
frame and textbox. (Not sure if this would have had anything to do with it
anyhow.)

Thanks in advance for your help





All times are GMT +1. The time now is 12:03 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com