Ciao presumo tu sia in .net, visto che mi parli di Thread.
Se è così:
>ovvero come faccio a sapere trovandomi sul form1 quale form sono
>aperti ???
se hai un'applicazione che utilizza MdiForm, quindi con MdiChild è semplice sapere quali child sono aperte, usando la proprietà "MdiChildren" della MdiContainer. Quindi nella child puoi usare un codice di questo tipo:
(this.Parent as MdiParent).MdiChildren
se invece hai form singole e separate, puoi usare una Collection che ti tiene in memoria quello che viene aperto, magari puoi metterla per comodità nella classe Program che viene creata all'avvio dell'applicazione stessa:
...
static class Program
{
static List<Form> forms = new List<Form>();
//--- la aggiungo una volta sola
public static AggiungiFormAperta(Form frm)
{
bool trovata = false;
foreach(Form f in forms)
{
if(f.Name == frm.Name)
}
if(!trovata)
forms.Add(frm);
}
public static FormsAperte
{
get { return forms; }
}
...
}
e quando apri la form:
...
Program.AggiungiFormAperta(this);
...
e se ti serve recuperarla puoi andare tramite la proprietà "Program.FormsAperte"...
Ciao.
Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo