Thanks Thanks:  0
Likes Likes:  0
Results 1 to 4 of 4

Thread: Dynamically adding a control Object

  1. #1
    New Member
    Join Date
    Mar 2002
    Posts
    9
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    I have dynamically added an array of objects of checkbox type via user forms. This part went well. Now I do not know how to write code to link to the events. In other words, if I created arrayofcheckboxes on a user form, you would think the a "click" event call to the first checkbox would be :
    "Private sub arrayofcheckboxes(1)_click()

    End Sub"

    Nope, Thanks for any help.

  2. #2
    MrExcel MVP Russell Hauf's Avatar
    Join Date
    Feb 2002
    Location
    Portland, OR Area - USA
    Posts
    1,607
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    You'd have to post your code I think to be sure. But basically you should get controls ending in 1 to N, with N being the number of controls you added. Something like CheckBox1 to CheckBoxN, unless you are specifically naming them.

    -rh

  3. #3
    New Member
    Join Date
    Mar 2002
    Posts
    9
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    Russel: Below is a very simplified version of what I trying to do. Create an array of checkboxes. During runtime these checkboxes are created. If the checkbox is clicked, then I want some sort of event to happen. I tried what you just suggested by no luck. After the Controls.Add statement you can apply a name but does not seem to help.

    Thanks for looking at this!


    Dim TestCheckbox(2) As Control
    Dim SingleCheckBox As Control


    Private Sub CommandButton2_Click()

    Set TestCheckbox(1)= _ Controls.Add("Forms.Checkbox.1")
    Set TestCheckbox(2)= _ Controls.Add("Forms.Checkbox.1")
    Set SingleCheckBox = _ Controls.Add("Forms.Checkbox.1")

    With TestCheckbox(1):
    .Left = 20
    .Caption = "FirstCheckBox"
    End With

    With TestCheckbox(2):
    .Left = 120
    .Caption = "SecondCheckBox"
    End With

    With SingleCheckBox:
    .Left = 220
    .Caption = "LastCheckbox"
    End With


    End Sub

    Public Sub TestCheckbox2_Click()

    With TestCheckbox(2):
    .Caption = "ChangedCheckbox"
    End With

    End Sub


    Private Sub CommandButton1_Click()
    End
    End Sub

  4. #4
    MrExcel MVP Russell Hauf's Avatar
    Join Date
    Feb 2002
    Location
    Portland, OR Area - USA
    Posts
    1,607
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    When you add a control at run-time, you need to also add the code at run time. Either that or use WithEvents. I'm sorry, I don't have time to go into all the gory details right now, but the adding code involves using the VBComponents class.

    [ This Message was edited by: Russell Hauf on 2002-03-26 15:38 ]

Some videos you may like

User Tag List

Like this thread? Share it with others

Like this thread? Share it with others

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •