Newsgroup: it.comp.lang.visual-basic
Titolo: Non trovo una soluzione... possibile? [VbModal]

Ho un form chiamato frmListaArticoli che, per il fatto che tramite un
pulsante su questo form si deve aprire un altro chiamato frmOrdini, non
posso caricare come vbModal (almeno ci ho provato, ma l'altro form non si
apre....)
Allo stesso tempo devo far si che se l'utente non chiude il frmListaArticoli
non possa aprire nessun altro form.
Ho già considerato la soluzione che mettendo ad esempio una variabile
caricato=1 nel load del form e caricato=0 nell'unload, possa fare il
controllo di questa variabile quando l'utente cerca di aprire un altro
form... ma avendo circa 60 form diversi onestamente non mi sembra la
soluzione ideale...
Come posso risolvere il problema? Avete una soluzione diversa?
Oppure posso impostare vbModal e poi aprire il form frmOrdini richiamato dal
pulsante su frmListaArticoli in qualche modo?

 non possa aprire nessun altro form.
Se esiste un form esposto modale (tipicamente quello da cui si richiede di
esporre un altro form, nel tuo caso frmListaArticoli che apre frmOrdini),
ogni altra esposizione (nel tuo caso frmOrdini) deve essere modale e, salvo
altri errori che ne impediscono la visualizzazione (verifica le istruzioni
negli eventi Load e Activate), deve andare.
Quindi esponi frmListaArticoli modale perchè questa è la tua logica. Quando,
da questo, esponi frmOrdini devi dichiararlo modale.

 ha scritto nel messaggio
news:b0e52k$ndldj$1...@ID-174464.news.dfncis.de...

Si ma il problema è un altro (scusa se nono l'ho scritto prima...) che
comunque l'utente deve lasciare aperto il frmOrdini e passare al
frmListaArticoli e viceversa, quindi in realtà dopo il primo click sul tasto
presente sul frmListaArticoli che fa aprire il frmOrdini, l'utente quel
tasto non lo preme più perchè il frmOrdini resta aperto fino a quando
l'utente non fa click su un tasto presente su frmOrdini che chiude ENTRAMBI
i form....
Quindi non posso aprire il frmOrdini come modale altrimenti non posso
ritornare al frmListaArticoli senza chiuderlo!

Voglio precisare una ulteriore cosa.
Io ho il frmMain (non modale) che ha i vari menu e tra questi c'e' il menu
che apre il frmListaArticoli in questo modo
Private sub Menu1_Click()
frmListaArticoli.Show vbModal, frmMain
End sub
Il tasto sul frmListaArticoli  :
Private sub cmdApriForm_Click()
frmOrdini.Show vbModal, frmListaArticoli
End Sub
ma, come detto prima, in questo modo non posso spostarmi da un form
all'altro :-((

SotterratoVivo ha scritto:

Non ci sono molte possibilità: Se uno è modale tutti gli altri dovranno
essere modali.
In tutta sincerità, non comprendo perchè mai, se sto guardando un articolo e
i suoi ordini, debba poter tornare (senza chiudere la finestra ordini) sulla
finestra articoli e magari scegliere un altro articolo e vederne i suoi
ordini...
Comunque, per risolvere il problema devi prevedere che nessuna form sia
modale, giocare con delle variabili interne per impedire di procedere e
magari con Set finestra = New Form_Ordini e agire su finestra. In tal modo
puoi avere più finestre ordini aperte (se la logica interna lo consente)

 i form....
Fai così:
frmMain.Enabled = False ' così non posso cliccarci sopra
frmOrdini.Show , frmMain
frmArticoli.Show , frmMain
I form non sono modali, sono in primo piano, sono switchabili, non posso
usare frmMain nel frattempo.
P.S.: ricorda di mettere frmMain.Enabled = True alla fine. Io terrei un
conteggio dei form "modali" aperti e quando questo torna a 0 abilitare
frmMain.
Ciao