non so se è un crossposting dell'altro mio 3d, cmq spero di nn sbagliare
nel mio menu principale ho la voce "Salva". Quando premo voglio che mi salva qualcosa. Come faccio a fare salvare il contenuto del form MDI attivo in quel momento?
non so se è un crossposting dell'altro mio 3d, cmq spero di nn sbagliare
nel mio menu principale ho la voce "Salva". Quando premo voglio che mi salva qualcosa. Come faccio a fare salvare il contenuto del form MDI attivo in quel momento?
up
Puoi mettere una variabile globale di tipo string per esempio, nella quale salvi il nome del form aperto. Quando fai click col mouse su Salva ti vai a leggere il nome del form aperto ed, in base al form aperto richiami una certa funzione Salva. Questa potrebbe essere una soluzione ma escludo che sia l'unica e la migliore, se poi ti accontenti per il momento...
![]()
prima di leggere questa soluzione ho fatto una variabile globale di tipo form e poi facevo negli eventi activatedOriginariamente inviato da mardok30
Puoi mettere una variabile globale di tipo string per esempio, nella quale salvi il nome del form aperto. Quando fai click col mouse su Salva ti vai a leggere il nome del form aperto ed, in base al form aperto richiami una certa funzione Salva. Questa potrebbe essere una soluzione ma escludo che sia l'unica e la migliore, se poi ti accontenti per il momento...
![]()
ActiveMDIForm = Me
poi quando premevo salva facevo x testare il corretto funzionamento, facevo:
Console.Write(ActiveMDIForm.Text)
e mi stampava il titolo del form come giusto che sia, però come faccio a leggere il contenuto di quel MDIForm (ListView, TextBox, ecc...) avendo solo la variabile ActiveMDIForm?
A quel punto dovresti richiamare la funzione salva del form aperto es
form1.salva(...)
![]()
Forse nn mi sono spiegato bene: dissi di aver creato una variabile globale di tipo form (ActiveMDIForm). Poi ogni volta che un form MDI fosse stato attivato (evento .Activated), questa variabile avrebbe preso il valore:Originariamente inviato da mardok30
A quel punto dovresti richiamare la funzione salva del form aperto es
form1.salva(...)
![]()
ActiveMDIForm = Me
Questo accade all'interno del form MDI...
Poi, quando faccio File > Salva dal MDIParent (credo che si kiami così), vorrei leggere il contenuto di un textbox o di qualsiasi altra cosa.
Ho provato a fare
ActiveMDIForm.txtnometextbox.text, però mi dice che nn è un membro della classe o qualcosa del genere.
Credo di essermi spiegato bene stavolta![]()
Ti sei spiegato in modo chiaro come lo avevi già fatto. Continuo a ripetere che la strada che vuoi intraprendere non è delle più semplici e lineari.
1) dovresti poter accedere dal form principale a tutti i controlli che ci sono sui form figli, quindi molto più codice da scrivere...
2)Dovresti fare una funzione Salva, che sta nel Form Padre, lunga 3 chilometri con
if form1 = Aperto then
accedi ai componenti di quel form e salva il contenuto
else if form2 = Aperto Then
accedi ai componenti di quel form e salva il contenuto
...
...
end if
Invece più semplicemente puoi fare sempre un if ma per richiamare la funzione Salva del form aperto.
Questo è quello che penso, se c'è qualcosa di poco corretto nel ragionamento sono pronto a rivedere tutto![]()
![]()
:master: :master: :master: :master:Originariamente inviato da mardok30
Invece più semplicemente puoi fare sempre un if ma per richiamare la funzione Salva del form aperto.
Questo è quello che penso, se c'è qualcosa di poco corretto nel ragionamento sono pronto a rivedere tutto![]()
![]()
ma il mio scopo è salvare tutto ciò che sta nel forum figlio attivo, come faccio a prevedere il numero di figli come hai detto tu facendo ogni if?
Il mio problema è che dopo aver messo nella variabile di tipo Form il nome del form figlio, coem faccio ad accedere ai suoi componenti (textbox ecc...)
Se faccio ActiveMDIForm.txtnometxt.text nn funziona![]()
ci sono riuscito facendo:
Variabile globale: Public ActiveMDIForm As frmNOME_MDI_CHILD
Assegnare ogni MDI facendo:
Private Sub frmNOME_MDI_CHILD_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Activated
ActiveMDIForm = Me
End Sub
e poi basta fare
ActiveMDIForm.
e vi spunta tutta la lista dei membri del form mdi attivo...
se voi fare
Console.WriteLine(ActiveMDIForm.txtnomecasellatest o.Text) vi stampa il testo della finestra mdi in quella determinata casella di testo...