|
web
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Showing a form from within a threadthis stage: For n As Integer = 1 To 10 fmViewer(n) = New frmViewer fmViewer(n).Tag = n fmViewer(n).MdiParent = Frm1 Next From within a new thread I wish to show a form: fmViewer(4).show However, it doesn't show. The answer I am sure is because I am trying to show it from within a thread. How can I achieve this? -Jerry is fmViewer an array? or are you trying to do something else....please
explain a little bit more -- -iwdu15 Jerry Spence1 wrote:
Show quoteHide quote > I have the following which generates MDI forms, but doesn't show them at What is frmViewer? Here you are using it as both the name of your> this stage: > > For n As Integer = 1 To 10 > > fmViewer(n) = New frmViewer > > fmViewer(n).Tag = n > > fmViewer(n).MdiParent = Frm1 > > Next > > From within a new thread I wish to show a form: > > fmViewer(4).show > > However, it doesn't show. The answer I am sure is because I am trying to > show it from within a thread. How can I achieve this? class and the name of the array variable. Can you show us the declaration for frmViewer? Chris Hi Chris
fmViwer is the name of my form, fmViewer() is an array. I can see the difference is rather small! -Jerry Show quoteHide quote "Chris Dunaway" <dunaw***@gmail.com> wrote in message news:1154957680.048491.134180@m79g2000cwm.googlegroups.com... > Jerry Spence1 wrote: >> I have the following which generates MDI forms, but doesn't show them at >> this stage: >> >> For n As Integer = 1 To 10 >> >> fmViewer(n) = New frmViewer >> >> fmViewer(n).Tag = n >> >> fmViewer(n).MdiParent = Frm1 >> >> Next >> >> From within a new thread I wish to show a form: >> >> fmViewer(4).show >> >> However, it doesn't show. The answer I am sure is because I am trying to >> show it from within a thread. How can I achieve this? > > What is frmViewer? Here you are using it as both the name of your > class and the name of the array variable. Can you show us the > declaration for frmViewer? > > Chris > Jerry,
All Form access must be done from the main UI thread. That includes creating, manipulating, and showing the Form. You'll need a reference to an existing Form or Control that your worker thread will use to marshal the execution of a delegate onto the UI thread by calling Invoke or BeginInvoke. That delegate should contain the code to create and show the new Form. Invoke and BeginInvoke are among the very few members of a Form or Control that are actually thread-safe. Brian Jerry Spence1 wrote: Show quoteHide quote > I have the following which generates MDI forms, but doesn't show them at > this stage: > > For n As Integer = 1 To 10 > > fmViewer(n) = New frmViewer > > fmViewer(n).Tag = n > > fmViewer(n).MdiParent = Frm1 > > Next > > From within a new thread I wish to show a form: > > fmViewer(4).show > > However, it doesn't show. The answer I am sure is because I am trying to > show it from within a thread. How can I achieve this? > > -Jerry
Show quote
Hide quote
"Brian Gideon" <briangid***@yahoo.com> wrote in message Thanks Brian. I'll have a look at Invoke and BeginInvoke.news:1154964586.043590.211090@i42g2000cwa.googlegroups.com... > Jerry, > > All Form access must be done from the main UI thread. That includes > creating, manipulating, and showing the Form. You'll need a reference > to an existing Form or Control that your worker thread will use to > marshal the execution of a delegate onto the UI thread by calling > Invoke or BeginInvoke. That delegate should contain the code to create > and show the new Form. Invoke and BeginInvoke are among the very few > members of a Form or Control that are actually thread-safe. > > Brian > > Jerry Spence1 wrote: >> I have the following which generates MDI forms, but doesn't show them at >> this stage: >> >> For n As Integer = 1 To 10 >> >> fmViewer(n) = New frmViewer >> >> fmViewer(n).Tag = n >> >> fmViewer(n).MdiParent = Frm1 >> >> Next >> >> From within a new thread I wish to show a form: >> >> fmViewer(4).show >> >> However, it doesn't show. The answer I am sure is because I am trying to >> show it from within a thread. How can I achieve this? >> >> -Jerry > -Jerry |
|||||||||||||||||||||||