Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117

    [VB.NET] - Form che si chiude da solo quando ne chiudo un altro...

    Ciao a tutti ho un problema che non mi era mai capitato...

    Ho 3 form: Primo, Secondo, Terzo

    Il secondo lo apro con showDialog dal primo ed il terzo con showDialog dal secondo in questo modo:

    Dal form PRIMO
    codice:
      Private Sub bttApriSecondo_Click(sender As Object, e As EventArgs)
            Me.Visible = False
            Dim frm As New secondo()
            Try
                If frm.ShowDialog(Me) = DialogResult.OK Then
                    //altre mie istruzioni
                End If
            Catch ex As Exception
                //Mie istruzioni per gli errori
            Finally
                Me.Visible = True
            End Try
        End Sub
    Dal form SECONDO
    codice:
        Private Sub bttApriTerzo_Click(sender As Object, e As EventArgs) 
            //DGV è un datagridview che passo come variabile alla Sub New del form TERZO
    
            Dim frm As New Terzo(dgv)
            Try
                frm.ShowDialog(Me)
            Catch ex As Exception
                //mie istruzioni per gli errori
            End Try
        End Sub
    In sostanza quando chiudo il form TERZO (dando il comando Me.DialogResult = DialogResult.OK) mi si chiude anche il form SECONDO e torno al PRIMO...

    So che non è un comportamento normale e che ci deve essere qualcosa di sbagliato nel codice ma ho cercato e ricercato e non ho trovato nulla di anomalo...

    Non vi chiedo la soluzione perchè credo che senza avere il quadro generale davanti sia impossibile ma qualche consiglio riguardo le aree sulle quale dovrei concentrarmi a cercare l'errore...ipotesi e quant'altro insomma!

    Grazie a tutti!

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2011
    residenza
    Arezzo
    Messaggi
    194
    Non ho mai provato una struttura del genere, almeno non in questo contesto (l'ho fatto recentemente in Angular ma non ho avoto problemi di questo tipo), l'impressione è che il DialogResult.OK si propaghi anche alla dialog intermedia facendola chiudere, hai provato nella form 1 a controllare il valore che hai alla chiusura della form 2?
    poi nella seconda form io proverei ad intercettare la chiusura della terza come hai fatto nella prima

    Quote Originariamente inviata da Veronica80 Visualizza il messaggio
    codice:
        Private Sub bttApriTerzo_Click(sender As Object, e As EventArgs) 
            //DGV è un datagridview che passo come variabile alla Sub New del form TERZO
    
            Dim frm As New Terzo(dgv)
            Try
                 If frm.ShowDialog(Me) = DialogResult.OK Then
                     //...
                 End If
            Catch ex As Exception
                //mie istruzioni per gli errori
            End Try
        End Sub
    Grazie a tutti!
    Riccardo Sadocchi
    Microsoft MCP C#

  3. #3
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    Ah che pro intercettare sul secondo form se non ho necessità di avere un responso?
    Dovrei mettere un IF senza poi avere istruzioni al suo interno?

  4. #4
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    Di fatto è come se il dialogResult del form Terzo lanciasse un result "fantasma" per il secondo ma andando in debug con F8 passo passo non mi da nessuna esecuzione se non la chiusura di Form SECONDO

  5. #5
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    Ulteriore aggiornamento:

    Ho provato a rimuovere tutte le istruzioni associate al bottone che gestiva il salvataggio dati/chiusura form.
    Ho addirittura rimosso l'HANDLER del bottone...in sostanza quel bottone dovrebbe essere morto...ma se lo clicco mi chiude il form TERZO e poi (come già detto) anche il form SECONDO....
    La cosa comincia davvero a diventare molto molto anomala....

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2011
    residenza
    Arezzo
    Messaggi
    194
    Quote Originariamente inviata da Veronica80 Visualizza il messaggio
    Ah che pro intercettare sul secondo form se non ho necessità di avere un responso?
    Dovrei mettere un IF senza poi avere istruzioni al suo interno?
    Il “pro” sarebbe quello di capire se intercettando quell’azuobe riesci ad evitare il problema o comunque a capire come farlo poi in in’altro modo
    Riccardo Sadocchi
    Microsoft MCP C#

  7. #7
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    Ci ho provato ma non cambia!
    Poi sta cosa che il bottone mi chiude il form a prescindere dal fatto che abbia codice al suo interno o sia assegnato un handler al click è davvero assurda...

  8. #8
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Quote Originariamente inviata da Veronica80 Visualizza il messaggio
    Poi sta cosa che il bottone mi chiude il form a prescindere dal fatto che abbia codice al suo interno o sia assegnato un handler al click è davvero assurda...
    Concordo, ma occorrerebbe avere un progetto di esempio per capire cosa c'è non va.
    Qui non ho il Visual Studio, ma se pubblichi un progetto di esempio, domani potrei testarlo.

  9. #9
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    Ok ragazzi! Ho risolto!
    Mi son messa a spulciare uno per uno tutti i controlli ed ho scoperto che il bottone in form SECONDO che apriva il dialog di form TERZO quando veniva cliccato eseguiva tutte le istruzioni dell'handler .Click ma poi (non chiedemi perchè) chiudeva il form...

    togliendo tutte le istruzioni dalla Sub che era Handled al .Click non aveva nulla da eseguire ma continuava a chiudere il form...

    In sostanza ho eliminato il bottone, ne ho creato uno nuovo ed ora funziona tutto! :O

    Grazie a tutti lo stesso!

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.