![]() |
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 |
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 |
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 |
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