Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657

    [VB.NET] Sapere quale MDI è arrivo

    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?

  2. #2
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    up

  3. #3
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657

  4. #4
    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...

  5. #5
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    Originariamente 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...
    prima di leggere questa soluzione ho fatto una variabile globale di tipo form e poi facevo negli eventi activated

    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?

  6. #6
    A quel punto dovresti richiamare la funzione salva del form aperto es
    form1.salva(...)

  7. #7
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    Originariamente inviato da mardok30
    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:

    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

  8. #8
    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

  9. #9
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    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
    :master: :master: :master: :master:
    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

  10. #10
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    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...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.