Impedire l'apertura di un Form secondario più di una volta

Da Gambas-it.org - Wikipedia.

Per impedire che un Form secondario possa essere aperto più di una volta, si possono esperire almeno due modalità.


Facciamo l'esempio in cui un Form secondario (che chiameremo Form1) viene aperto mediante la pressione di un tasto posto sul Form principale (quello della Classe FMain).


Prima modalità

Nella prima modalità porremo del codice sia nella Classe principale FMain che nella Classe del Form secondario.


Il codice presente nella Classe principale FMain sarà il seguente:

Public frm As New Avisos
 
 
Public Sub Button1_Click()

 frm.Show

End


Il codice presente nella Classe del Form secondario (Form1) sarà il seguente, al fine di impedire che venga sollevato l'errore "Invalid object", quando si tenterà di aprire nuovamente il Form secondario (Form1), dopo averlo precedentemente chiuso:

Public Sub Form_Close()
 
 FMain.frm = New Form1
   
End


Seconda modalità

La seconda modalità è più breve, e fa uso della sola Classe del Form principale (FMain):

Public frm As Avisos
  
  
Public Sub Button1_Click()
  
  If Object.IsValid(frm) = False Then 
    frm = New Avisos
    frm.Show
  Endif

End