Differenze tra le versioni di "Fare riferimento alle voci del Menu da altri Form"
(Creata pagina con "Per fare genericamente riferimento da altri ''Form'' alle voci del ''Menu'', si possono adottare due modalità. ==Rendere "Globale" e "Pubblico" l'Oggetto che si riferisce al...") |
(Nessuna differenza)
|
Versione delle 18:04, 16 lug 2024
Per fare genericamente riferimento da altri Form alle voci del Menu, si possono adottare due modalità.
Indice
Rendere "Globale" e "Pubblico" l'Oggetto che si riferisce al Menu
Se i menu sono fatti da codice e non nell'IDE, si può semplicemente rendere "Globale" e pubblico con la parola-chiave PUBLIC l'identificatore dell'istanza (Oggetto) del Menu:
Public OggettoMenu As Menu Public Sub Form_Open() OggettoMenu = New Menu(Me) ...etc... End
Nell'altro Form (esterno a quello che contiene il Menu), si richiama l'identificatore del Menu:
Print FMain.OggettoMenu.Children.Count
Usare la Proprietà array "Window.Menus"
Questa Proprietà restituisce una raccolta di tutti i menu della barra dei menu della finestra.
Tutte le forme visibili e non visibili di Menu di livello superiore e quindi i loro figli sono accessibili da quella Proprietà di tipo array.
For Each OggettoMenu As Menu In FMain.Menus Print OggettoMenu.Name; " possiede "; hMenu.Children.Count; " figli."
Next
Usare l'Evento "Action_Activate()"
Si può fare uso dell'Evento "_Activate()" della Classe Action da porre nel codice del Form principale contente il Menu.
Nel seguente esempio si dispone un Form, che ha il Menu e il seguente codice: [nota 1]
Public Sub Action_Activate(sKey As String) As Boolean Select Case sKey Case "act-2" Print "Il Menu2 di FMain cliccato da Form1" Case "act-3" Print "Il Menu3 di FMain cliccato da Form1" Case "act-4" Print "Il Menu4 di FMain cliccato da Form1" End Select End
Mentre in un altro Form (secondario) si avrà il seguente codice e un ComboBox con diverse voci:
Public Sub Button1_Click() FMain.Action_Activate(ComboBox1.Text) End
Note
[1] Il codice è stato suggerito da Gianluigi, moderatore del forum gambas-it.org.