Click here to Skip to main content
13,199,318 members (77,019 online)
Rate this:
Please Sign up or sign in to vote.
Okay, I want to add multiple user controls into a flow panel at one time without the UI freezing, I've tried adding the controls from a Background Worker but get an error about how it cannot be added because it can't change parent control or something like that, any help would be appreciated.
Posted 19-Dec-12 11:33am

1 solution

Rate this: bad
Please Sign up or sign in to vote.

Solution 1

You are going to have to create a delegate to add the controls for you, something like this:

** assuming your flow control is called 'flow'
private delegate sub delAddControl(ctrl as Control)
private sub AddControl(ctrl as Control)
    if (flow.InvokeRequired) then
        dim d as new delAddControl(AddressOf AddControl)
        me.Invoke(d, ctrl)
    end if
end sub

I have written this code 100 times in C# but my vb is a little rusty so im sure this wont compile but you should be able to see what im doing and get yours working from that.

**** EDIT *****
Oh Yea, then you can just call AddControl from your BackgroundWorker and the controls will get added to your UI without locking it up because the heavy lifting is being done in the BackgroundWorker.
jackdawkc 20-Dec-12 6:29am
Thank you very much, worked just as I wanted it to :)

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month

Advertise | Privacy |
Web04 | 2.8.171020.1 | Last Updated 19 Dec 2012
Copyright © CodeProject, 1999-2017
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100